Zag*_*ags 2 python unicode sqlalchemy utf-8 latin1
我有一个用UTF-8编码的MySQL数据库,但是当我用SQLAlchemy(Python 2.7)连接它时,我得到了带有Latin1 Unicode字符的字符串.
因此,比利时(België)的荷兰语拼写出来了
'Belgi\xeb'
Run Code Online (Sandbox Code Playgroud)
而不是
'Belgi\xc3\xab'
Run Code Online (Sandbox Code Playgroud)
或者,理想情况下是Unicode对象
u'Belgi\xeb'
Run Code Online (Sandbox Code Playgroud)
根据文档(http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html#custom-dbapi-args):
如果use_unicode = 1参数或charset参数作为连接参数传递,MySQLdb将容纳Python unicode对象.
如果没有此设置,许多MySQL服务器安装默认为客户端连接的latin1编码.
你需要使用
create_engine('mysql+mysqldb://HOSTNAME/DATABASE?charset=utf8')
Run Code Online (Sandbox Code Playgroud)
而不仅仅是
create_engine('mysql+mysqldb://HOSTNAME/DATABASE')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |