我像往常一样创建数据库:
CREATE DATABASE my_db CHARACTER SET utf8 COLLATE utf8_general_ci;
我已经转储了不错的states.sql,但是当我将它们转储到数据库时,我看到了应该在波兰图表上出现的奇怪的符号和字母。
当我尝试从一些答案中添加时:
default-character-set=utf8
character-set-server=utf8
default-collation=utf8_unicode_ci
到my.cf-mysql不想重启。
我也可以说,例如,当我在phpmyadmin中这样做时:
SELECT * FROM 'states' WHERE name = 'gorzów'
我从非utf-8符号的mysql语法中得到错误。
哪里有问题?
最佳答案
gorzów
变成了gorzów
吗?那就是Mojibake。
这是经典案例
客户端中的字节已正确编码为utf8(良好)。
您可能默认情况下连接了SET NAMES latin1
(或set_charset('latin1')
或...)。 (应该是utf8
。)
表中的列可能是CHARACTER SET utf8
,也可能不是。但是应该是。
由于您没有说明正在使用的客户端,也没有说明用于连接的语法,因此我无法更具体地说明。也许http://mysql.rjweb.org/doc.php/charcoll#python或后面的部分会有所帮助。
关于mysql - MySQL不使用UTF-8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36273790/