2013-03-27 1 views
0

latin1에서 이전에 MySQL 데이터를 인코딩했습니다. 이제는 MySQL에서 UTF-8로 변환했지만 데이터는 여전히 latin1에 저장됩니다. 원래 Latin-1로 저장된 UTF-8 데이터가 UTF-8로 올바르게 변환되지 않았습니다. PHP로 작업해야하므로 쿼리를 사용하여 데이터베이스에서 데이터를 가져올 때 UTF-8로 변환해야합니다. PHP charset conversion

는 정말 도움이되는 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

+0

또는 ['utf8_encode'] (http://www.php.net/manual/en/function.utf8-encode.php) –

+0

다른 변경 사항과 함께 필요한 것 외에도'SET names UTF8 '을 mysql에 연결 한 후 첫 번째 명령으로 사용합니다. 이건 중요하다! – hek2mgl

답변

0

당신은 소독 사람과 값을 대체하기 위해 SQL 테이블에 다음 (http://php.net/manual/fr/function.utf8-decode.php)

당신이 루프가 PHP 함수 utf8_encode (http://php.net/manual/fr/function.utf8-encode.php)와 utf8_decode을 사용할 수 있습니다

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

    } 
?>