【问题标题】:Python encoding when retrieving from mysql [duplicate]从mysql检索时的Python编码[重复]
【发布时间】:2015-12-12 03:28:21
【问题描述】:

在 MySQL 中,我有一个字段,其值为:"Rœschwoog"

MySQL 表的字符集是 UTF-8。 当我从 Python 3.4 中检索该值时,我将它保存到一个字典中。当我打印该字典时,我意识到该值不是"Rœschwoog",而是"R\x9cschwoog"。为什么会这样?我怎样才能得到真正的价值?

我通过以下方式创建 MySQL 连接:

conn = pymysql.connect(host='127.0.0.1', user='xxx', passwd="yyy", db='mydb')

【问题讨论】:

  • "R\x9cschwoog" 是用windows-1252 编码的字符串Rœschwoog 的Python 表示。您能否将代码的相关部分(简化的测试用例)添加到您的问题中?特别是,您在创建 MySQL 连接时使用哪些连接参数?
  • 感谢您的回答。我用 mysql 连接信息编辑了我之前的问题。
  • 尝试将charset="utf8" 添加到您的连接参数中。有关更多详细信息,请参阅 this answerthis onepymsql docs
  • 很好,很高兴我能帮上忙。因此,我会用适当的重复项标记您的问题,如果我认为这是正确的,您应该能够确认并立即将其标记为重复项。

标签: python mysql encoding


【解决方案1】:

不是charset=utf8,您需要指定您的字节编码为cp1252,或者可能是latin1(它们是相似的。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2014-01-06
    相关资源
    最近更新 更多