使用PHP或MySQL转换utf8字符

时间:2013-12-20 14:51:18

标签: php mysql utf-8 pdo character-encoding

我不确定某人是否曾经问过这个问题,但我没有找到。虽然我没有在PDO中设置连接字符集,但表格排序是utf8_percian_ci,因此所有数据都存储在不可读的字符中,例如سلام,这是波斯语中的سلام

在通过将mysql:charset=utf8mb4;添加到PDO DNS来设置字符集之前,我能够正确检索所有数据,但现在我在浏览器中看到了سلام而不是سلام

我的网站是一个博客,现在看来我必须重新输入所有文本和帖子,然后恢复它们才能正确保存。那是一场灾难!

mb_detect_encoding()سلام使用سلام سلام并发现它们都是UTF-8。搜索“如何将utf8转换为utf8?”这很有趣。绝对没有预期的结果。

无论如何使用MySQL将سلام转换为{{1}}?如果没有,我认为另一种方法可能是使用PHP读取旧数据然后转换并再次插入数据库。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

UPDATE my_table SET my_column = BINARY CONVERT(my_column USING latin1)

(其中latin1是插入时设置连接的字符集。)