0

我正在使用SQLAlchemy从 utf-8 编码文件中读取一些数据并将它们放入 MySQL 数据库。只要我使用 sqlalchemy 访问数据,一切正常 - 在这种情况下编码是完全正确的。

我的问题是我需要从另一个不是用 python 编写的应用程序访问相同的数据。在这种情况下,编码无法正常工作。当我通过 mysql 客户端查看它时,它也是不正确的。

谁能帮我找出解决方案?

4

1 回答 1

1

您必须验证您的配置是否满足以下条件:

  • 您的 MySQL 数据库配置为对表和列使用UTF-8
  • 所有客户端连接都配置为使用UTF-8。对于SQLAlchemy,这可以通过以下方式实现:

    # set client encoding to utf8; all strings come back as unicode
    create_engine('mysql+mysqldb:///mydb?charset=utf8')
    
  • 您用于SQLAlchemyUnicode的类型,而不是. String

如果满足上述条件,并且再次确保所有客户端连接都配置为使用UTF-8字符集,并且所有客户端都将 UTF-8 字节字符串解码为它们所在语言的任何内部 Unicode 表示形式实现的用途(如果配置正确,驱动程序/连接器应该自动处理这个问题)你不应该有任何问题。

于 2012-10-26T00:18:56.903 回答