我正在使用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
我的HTML代码包括:
meta charset="UTF-8"
我仍然在网页上输入 符号而不是£。知道什么可能是错的吗?
答案 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