2013-03-27 189 views
0

我以前编写过latin1中的MySQL数据。现在,我已将它转换为MySQL中的UTF-8,但数据仍保存在latin1中。 原始存储为Latin-1的UTF-8数据没有正确转换为UTF-8。 我需要在PHP中解决问题,以便在使用查询从数据库中获取数据时,应将其转换为UTF-8。PHP字符集转换

我找到了一个解决方案,使用的是MySQL的功能,这是真正有用的数据库转换... MySQL - Convert latin1 characters on a UTF8 table into UTF8

但我的情况是,我需要做这在PHP。

+0

你试过['mb_convert_encoding' ](http://php.net/manual/en/function.mb-convert-encoding.php)? – rcpaul 2013-03-27 15:52:50

+0

或者只是['utf8_encode'](http://www.php.net/manual/en/function.utf8-encode.php) – 2013-03-27 15:56:14

+0

除了可能需要的其他更改外,您还必须发出SET名称UTF8'作为连接到mysql后的第一个命令。这个很重要! – hek2mgl 2013-03-27 15:56:28

回答

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"]); 

    } 
?>