0

PHP ファイル (client.php) を utf-8 から iso-8859-1 に変換しようとしていますが、次のコマンドはファイルに対して何も行いません。

iconv -f UTF-8 -t ISO-8859-1 client.php

実行すると、元のファイルの内容が表示されます。

実際、 iconvを実行した後にファイルのエンコーディングを確認すると、次のようになります。

ファイル -I client.php

同じ古い utf-8 が表示されます。

client.php: text/x-php; 文字セット=utf-8

4

3 に答える 3

5

iconv ユーティリティは、ファイル内の文字のエンコーディングをあるコードセットから別のコードセットに変換し、結果を標準出力に書き込みます。

ここに解決策があります:標準出力を一時ファイルに書き込み、一時ファイルの名前を変更します

iconv -f UTF-8 -t ISO_8859-1 client.php > client_temp.php && mv -f client_temp.php client.php
于 2012-05-16T15:13:29.683 に答える
1

ASCII、UTF-8、および ISO-8859 は、最下位の 128 文字に対して 100% 同一のエンコーディングです。ファイルにその範囲の文字のみが含まれている場合 (基本的には、一般的な米国英語キーボードで見られる文字のセットです)、これらのエンコーディング間に違いはありません。

私の推測では、プレーン テキスト ファイルにはエンコード メタデータが関連付けられていません。プレーンテキストファイルを見ただけでは、エンコーディングを知ることはできません。ユーティリティが行っていることは、file単に最善の推測を示しているだけであり、違いがないため、ファイルが UTF-8 でエンコードされていることを伝えることを好みますが、技術的にはそうである可能性があります。

于 2012-05-16T11:36:08.257 に答える