2012-12-23 7 views
1

ISO-8859-1에서 UTF-8로 PHP 응용 프로그램을 인코딩하려고합니다. 응용 프로그램의 테스트 복사본을 만들어 다음 iconv를 실행하여 모든 파일을 반복적으로 수정합니다.ISO-8859-1에서 UTF-8로 PHP 응용 프로그램 인코딩 문제가 발생했습니다.

find . -type f -print -exec iconv -f iso8859-1 -t utf-8 -o {}.converted {} \; -exec mv {}.converted {} \; 

위의 내용은 실제로 작동하지 않았습니다. 코드는 여전히이 텍스트와 같은 : 테스트 PHP 스크립트와

não exibe nenhuma info durante a configuração. será setado adequadadmente 

<?php 
$text = "não exibe nenhuma info durante a configuração. será setado adequadadmente"; 

echo 'Original : ', $text, PHP_EOL; 
echo 'TRANSLIT : ', iconv("ISO-8859-1", "UTF-8//TRANSLIT", $text), PHP_EOL; 
echo 'IGNORE : ', iconv("ISO-8859-1", "UTF-8//IGNORE", $text), PHP_EOL; 
echo 'Plain : ', iconv("ISO-8859-1", "UTF-8", $text), PHP_EOL; 

?> 

출력은 다음과 같습니다

Original : não exibe nenhuma info durante a configuração. será setado adequadadmente 
TRANSLIT : não exibe nenhuma info durante a configuração. será setado adequadadmente 
IGNORE : não exibe nenhuma info durante a configuração. será setado adequadadmente 
Plain : não exibe nenhuma info durante a configuração. será setado adequadadmente 
+2

원본 코드가 ISO8859-1입니까? UTF-8 (즉, UTF-8을 ISO8859-1로 읽고 UTF-8로 변환한다고 iconv에게 말한 것) – akirk

+0

실제로'nà £'는 이미 UTF-8이지만, 브라우저에 알려주는 것입니다. – GolezTrol

+1

일반 문자로 바꾸는 것이 가능합니다 – bobsr

답변

1

파일은 괜찮와 UTF-8로, 당신은 단지입니다 CP1252/ISO-8859-1에서이를 해석합니다. 인코딩을 브라우저와 텍스트 편집기에 선언해야합니다.

header("Content-Type: text/html; charset=utf-8"); 

텍스트 편집기에서 파일이 UTF-8로 지정되어 있으면 문자가 올바르게 표시됩니다. 전환하지 마십시오.