1

phpアプリケーションをISO-8859-1からUTF-8にエンコードしようとしています。アプリケーションのテストコピーを作成し、次のiconvを実行して、すべてのファイルを再帰的に変更しました。

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

上記は実際には機能しませんでした。コードにはまだ次のようなテキストがあります:

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

テストphpスクリプトを使用

<?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
4

1 に答える 1

1

あなたのファイルは問題なく、UTF-8 で、CP1252/ISO-8859-1 で解釈しているだけです。ブラウザとテキスト エディタにエンコーディングを宣言する必要があります。

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

テキスト エディターで、ファイルが UTF-8 であることを指定すると、文字が正しく表示されます。変換を行わないでください。

于 2012-12-24T06:50:30.000 に答える