【发布时间】:2017-08-04 15:19:07
【问题描述】:
在我开始之前,我知道这个问题被问到了很多,但我已经查看了几乎所有适合与此问题相关的各种搜索词的 SO 问题。
我的问题是我试图在 utf8 中存储一个 3 字节字符,而不是像许多问题提出的那样存储 4 个字节,特别是中文字符。
DB 字符集是带有 utf8_general_ci 排序规则的 utf8。列、表和连接字符集也是 utf8。
MySQLdb.connect(host, user, passwd, schema, charset ='utf8', use_unicode=True)
我知道use_unicode 是隐含的,但我喜欢冗长。
我收到的警告是:Warning: Incorrect string value: '\xE5\x9B\xBD' for column 'mycolumn' at row 1
这会导致对该字段的 SELECTS,从而产生 ?。我的终端支持utf8,我的系统编码是utf8。
任何想法都会有所帮助。对该值调用.decode('utf8') 也不能解决问题。
【问题讨论】: