我像往常一样创建数据库:

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/

10-11 02:51
查看更多