我正在使用 pymysql 将以下内容插入到我的测试表中。 首先,我设置连接并指定字符集并将 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"
我的网页中仍然显示 � 符号而不是 £。知道可能出了什么问题吗?
最佳答案
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
关于mysql - 网站显示 � 即使我正在使用 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39320595/