2013-03-27 164 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"]); 

    } 
?>