Php 如何正确设置文件、数据库、连接等的编码。?

Php 如何正确设置文件、数据库、连接等的编码。?,php,mysql,encoding,character-encoding,phpmyadmin,Php,Mysql,Encoding,Character Encoding,Phpmyadmin,我正在将mysql数据库从一个站点迁移到另一个站点 它的编码是utf8 其连接编码为:utf8\U unicode\U ci 该站点的php文件中使用的编码:不带BOM的utf-8 该站点中每个页面的标题中的编码:utf-8 在那个网站上一切正常 然后,我使用phpmyadmin导出了数据库。 它生成了一个.sql文件,用utf-8编码,当我打开它时,一切都很好 然后我将该文件复制到新站点,该站点对所有内容使用相同的编码,并将其导入 当我通过一个网页显示来自旧站点的数据时,在新站点中,它会显示断

我正在将mysql数据库从一个站点迁移到另一个站点

它的编码是utf8

其连接编码为:utf8\U unicode\U ci

该站点的php文件中使用的编码:不带BOM的utf-8

该站点中每个页面的标题中的编码:utf-8

在那个网站上一切正常

然后,我使用phpmyadmin导出了数据库。 它生成了一个.sql文件,用utf-8编码,当我打开它时,一切都很好

然后我将该文件复制到新站点,该站点对所有内容使用相同的编码,并将其导入

当我通过一个网页显示来自旧站点的数据时,在新站点中,它会显示断字符。如:™ => �.

如果我将浏览器的编码从utf-8改为iso-8859-1,我会看到正确的符号

新站点中的其他一切都很好,在将内容保存到数据库并将其拉回来后,我没有编码问题。唯一奇怪的是,当我浏览存储的数据时,phpmyadmin会显示断字符。但我在网站上显示内容时没有这个问题

我使用两个不同的程序进行导入:phpmyadmin和webmin

所以我不知道这里出了什么问题,有什么想法吗


我应该如何配置编码以避免这种情况发生?

可能在第一个站点中,您没有设置连接编码(请参阅php中mysql\u client\u encoding()的输出)。 如果这就是问题所在,那么您以错误的格式存储了数据,并且使用相同的错误行为将数据正确地转换回来


p、 utf8\u unicode\u ci不是一种编码,而是一种排序规则(如何对字符串排序)

有一个非常好的方法。

我以前在一个旧站点上遇到过这种情况,它是在一个不同的排序规则中,所以一旦你试图将其更改为utf8,它会显示出所有奇怪的符号


有时候phpmyadmin中的后端会显示奇怪的代码,但网站显示的很好。

哇,你真是个天才。旧站点中的连接是“latin1”。谢谢