我需要使用 SQLAlchemy 创建并连接到数据库 PostgreSQL 9.2。到目前为止,我能够在 UTF-8 中创建完整的数据库,但我无法将非 ASCII 字符放入其中。这就是我连接到数据库的方式:
url = URL(drivername=s'postgresql', username='uname', password='pwd', host='localhost', port='5432', database='postgres')
self.engine = create_engine(url)
然后我创建新的数据库,切换到它,并开始填充它:一切正常。我明白了:
entercursor.execute(statement, parameters) sqlalchemy.exc.DataError
: (DataError) invalid byte sequence for encoding "UTF8": 0xec2d43
'INSERT INTO Province (codice_regione, codice, tc_provincia_id, nome, sigla) VALUES (%(codice_regione)s, %(codice)s, %(tc_provincia_id)s, %(nome)s, %(sigla)s) RETURNING Province.id' {'nome': 'Forl\xec-Cesena', 'codice': 40, 'codice_regione ':8,'tc_provincia_id':34,'sigla':'FC'}
我对 MySQL 5 上的同一个数据库有相同的代码,它工作得很好。我不知道出了什么问题。我为 unicode 注册了 postgres 的扩展,但这不起作用。我很困惑,我需要更有经验的人的帮助。