【发布时间】: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 answer、this one 和 pymsql docs。 -
很好,很高兴我能帮上忙。因此,我会用适当的重复项标记您的问题,如果我认为这是正确的,您应该能够确认并立即将其标记为重复项。