网站显示 即使我正在使用utf-8

时间:2016-09-04 19:17:42

标签: mysql encoding utf-8 pymysql

我正在使用pymysql将以下插入到我的测试表中。 首先,我设置连接并指定charset并将unicode设置为True:

conn=pymysql.connect(host=*ip*,user='simao_simao',password=*mypass*,database=*mydatabase*,use_unicode=True, charset="utf8")

然后我成功地将值插入到我的表中。

cur = conn.cursor()
sql = "Insert into test (colx, coly) Values('%s', 'not_relevant')"%(tag)
>>> sql
"Insert into test (colx, coly) Values('£26,302 - £35,225 + 20% R','not_relevant')"
>>> cur.execute(sql)
1

My table is utf-8 unicode ready

我的HTML代码包括:

meta charset="UTF-8"

我仍然在网页上输入 符号而不是£。知道什么可能是错的吗?

1 个答案:

答案 0 :(得分:0)

https://stackoverflow.com/a/38363567/1766831

按照调试提示SELECT ... HEX...查看£是否正确存储为C2A3(utf8),而不是A3(latin1)或C382C2A3 (双重编码)。

提供SHOW CREATE TABLE以验证列是utf8还是utf8mb4。

验证代码是否以# -*- coding: utf-8 -*-开头,以便编码为utf8。 (这涵盖了黑钻的可能原因之一;请参阅链接。)

如果还不够,请在此处查看更多Python说明: http://mysql.rjweb.org/doc.php/charcoll#python