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.