On Jan 16, 2012, at 7:35 AM, Pierre Bossé wrote:
Hello,
Here is my problem:
I would define a domain of values for a table field. Some values
have accented characters (non-ASCII character).
When generating the DDL for Elixir, a conversion is made on the
values provided by the accented characters and no longer.
Here is my test code:
# -*- coding: iso-8859-1 -*-
from elixir import *
class TestEnum(Entity):
myEnum = Field(Unicode(100),\
Enum(u'avec é',
u'avec è',
u'avec à'),\
colname='MY_ENUM')
if __name__ == '__main__':
metadata.bind = 'oracle://..:..@..'
metadata.bind.echo = True
setup_all()
drop_all()
create_all()
Here is the generated DDL:
CREATE TABLE __main___testenum (
id INTEGER NOT NULL,
MY_ENUM NVARCHAR2(100),
PRIMARY KEY (id),
CHECK (MY_ENUM IN ('avec é', 'avec è', 'avec à '))
)
I would gather that iso-8859-1 is not an adequate encoding here, even though it
does seem to preserve round trips with these characters, making this very
confusing. The issue reproduces with SQLite, and SQLAlchemy doesn't do
anything with the string - doesn't encode it or decode it. If you change
the encoding of the program to utf-8 it works.
That this produces ? implies that iso-8859-1 isn't good enough here:
# -*- coding: utf-8-*-
x = u'avec é'
print x.encode('iso-8859-1')
this test, however, produces the garbled character, which also implies 8859
isn't good enough because the source encoding of the program isn't capturing
the text correctly:
# -*- coding: iso-8859-1-*-
x = u'avec é'
print x.encode('utf-8')
--
You received this message because you are subscribed to the Google Groups
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.