我正在使用SQLAlchemy从 utf-8 编码文件中读取一些数据并将它们放入 MySQL 数据库。只要我使用 sqlalchemy 访问数据,一切正常 - 在这种情况下编码是完全正确的。
我的问题是我需要从另一个不是用 python 编写的应用程序访问相同的数据。在这种情况下,编码无法正常工作。当我通过 mysql 客户端查看它时,它也是不正确的。
谁能帮我找出解决方案?
我正在使用SQLAlchemy从 utf-8 编码文件中读取一些数据并将它们放入 MySQL 数据库。只要我使用 sqlalchemy 访问数据,一切正常 - 在这种情况下编码是完全正确的。
我的问题是我需要从另一个不是用 python 编写的应用程序访问相同的数据。在这种情况下,编码无法正常工作。当我通过 mysql 客户端查看它时,它也是不正确的。
谁能帮我找出解决方案?
您必须验证您的配置是否满足以下条件:
所有客户端连接都配置为使用UTF-8。对于SQLAlchemy,这可以通过以下方式实现:
# set client encoding to utf8; all strings come back as unicode
create_engine('mysql+mysqldb:///mydb?charset=utf8')
Unicode
的类型,而不是. String
如果满足上述条件,并且再次确保所有客户端连接都配置为使用UTF-8字符集,并且所有客户端都将 UTF-8 字节字符串解码为它们所在语言的任何内部 Unicode 表示形式实现的用途(如果配置正确,驱动程序/连接器应该自动处理这个问题)你不应该有任何问题。