我不确定某人是否曾经问过这个问题,但我没有找到。虽然我没有在PDO中设置连接字符集,但表格排序是utf8_percian_ci
,因此所有数据都存储在不可读的字符中,例如سلام
,这是波斯语中的سلام
。
在通过将mysql:charset=utf8mb4;
添加到PDO DNS来设置字符集之前,我能够正确检索所有数据,但现在我在浏览器中看到了سلام
而不是سلام
。
我的网站是一个博客,现在看来我必须重新输入所有文本和帖子,然后恢复它们才能正确保存。那是一场灾难!
mb_detect_encoding()
和سلام
使用سلام
سلام
并发现它们都是UTF-8。搜索“如何将utf8转换为utf8?”这很有趣。绝对没有预期的结果。
无论如何使用MySQL将سلام
转换为{{1}}?如果没有,我认为另一种方法可能是使用PHP读取旧数据然后转换并再次插入数据库。
我该怎么办?
答案 0 :(得分:1)
您可以这样做:
UPDATE my_table SET my_column = BINARY CONVERT(my_column USING latin1)
(其中latin1
是插入时设置连接的字符集。)