0

我以前用 latin1 对 MySQL 数据进行了编码。现在,我在 MySQL 中将其转换为 UTF-8,但数据仍保存在 latin1 中。最初存储为 Latin-1 的 UTF-8 数据未正确转换为 UTF-8。我需要在 PHP 中解决,这样当我使用查询从数据库中获取数据时,它应该被转换为 UTF-8。

我找到了使用 MySQL 函数转换数据库的解决方案,这真的很有帮助... MySQL - 将 UTF8 表上的 latin1 字符转换为 UTF8

但我的情况是,我需要在 PHP 中执行此操作。

4

1 回答 1

0

您可以使用 PHP 函数 utf8_encode ( http://php.net/manual/fr/function.utf8-encode.php ) 和 utf8_decode ( http://php.net/manual/fr/function.utf8-decode.php )

然后你必须在你的 SQL 表中循环以用清理过的值替换值

<?php
$query = mysql_query("SELECT * from table");

while($result = mysql_fetch_array($query)){
    //Then update row with new name
    mysql_query("UPDATE table SET col_name = '" . utf8_decode($result["col_name"]) ."' WHERE id = " . $result["id"]);

  }
?>
于 2013-03-27T15:56:12.633 回答