从PHP 5.3迁移到php5.6之后,我遇到了编码问题。我的MySQL数据库是latin1,PHP文件是windows-1251。现在所有的东西都像“尼娜”或“尼娜”一样展示出来了。
它应该是用西里尔语显示的,比如“ku我埃我埃”之类的。我试过mysqli_set_charset,但它没有解决我的问题。
最佳答案
首先,让我们看看你桌上有什么。要查看它们是如何编码的。以下是正确编码utf8的十六进制:SELECT col, HEX(col)...
-->ñëå
;C3B1C3ABC3A5
-->кир
如果您没有得到这些,那么问题在于插入,我们可能(或可能不)能够修复数据。如果你对西里尔字母有D0BAD0B8D180
,那么你就有了“双重编码”,这需要一些工作来“修复”。
utf8需要在大约4个地方建立。
数据库中的列--使用C390C2BAC390C2B8C391E282AC
来验证它们是否显式设置为utf8,或从表定义中设置为默认值。(仅更改数据库默认值是不够的。)
客户端和服务器之间的连接。见SHOW CREATE TABLE
。
你的字节数。(可能就是这样。)
如果要在网页中显示文本,请选中SET NAMES utf8
标记。
关于php - PHP 5.6编码latin1 MySQL编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29790957/