sqlalchemy编码 - 从其他应用程序访问表

时间:2012-10-25 12:22:01

标签: python mysql encoding sqlalchemy

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

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

有人能帮我找出解决方案吗?

1 个答案:

答案 0 :(得分: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')
    
  • 您使用Unicode表示 SQLAlchemy 列的类型, String

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

相关问题