2016-05-05 31 views
2

複数のファイルをバッチでUS-ASCIIからUTF-8に変換しようとしています。私はiconv comnandに問題を絞り込みました。これは、スタックオーバーフローの最善の精錬にもかかわらず、間違っているようです。何がここで間違っているのだろうか?iconvでUS-ASCIIからUTF-8に変換するにはどうすればよいですか?

エンコーディングの確認:変換することiconvを使用して

file -i accounting.cfm 
accounting.cfm: text/html; charset=us-ascii 

試み:

iconv -f us-ascii -t utf-8 accounting.cfm > accounting.cfm.recode 

を結果ファイルのエンコードを確認します。

file -i accounting.cfm.recode 
accounting.cfm.recode: text/html; charset=us-ascii 

結果のファイルがまだあるようですUS-ASCII文字セット用にエンコードされています。 1つのファイルをSublimeでUTF-8(Save With Encoding)として保存すると、charsetはutf-8として表示されます。私はUS-ASCIIがUTF-8のサブセットであることを理解していますが、US-ASCIIでエンコードされたファイルをブラウザに表示すると、ガベージ文字(ブラウザにロードされた場合はひどい疑問符)が表示されます。これは従来のColdFusionサイト向けです。エンコーディングで保存されたファイルをSublimeで呼び出すと、外来文字セットが正しく表示されます。私が間違っていることは何ですか?ありがとう。

+1

UTF-8は下位互換性があるため、ASCIIファイルはすでにUTF-8ファイルです。 'file'は最低公倍数を出力します。それが意味するものを知るだけです。投票は、再生できないものとして終了します。 – tripleee

+3

UTF-8として保存すると、ファイルの先頭にBOMが追加されることがあります。これらの3バイトはUS-ASCII以外のものに変換します。それは "文字化け"ではない、あなたは誤ってまたは誤って構成されたツールを使用してそれを検査しているだけです。 – tripleee

+0

良いツールや 'file'コマンドの使用についての提案はありますか?お返事をありがとうございます。 – FlipperPA

答えて

1

私はそれを理解しました。 。ColdFusionには、それぞれ、すべてのCFMファイルの先頭に<cfprocessingdirective pageencoding="utf-8">タグを配置する場合を除き、あなたが参考に非ASCII文字を有していてもよく、正常に動作するようにBOMを必要としない:

https://forums.adobe.com/thread/930550 https://www.adobe.com/support/coldfusion/internationalization/internationalization_cfmx/internationalization_cfmx3.html

私は」私は崇高なユーザーなので、File-> Save with Encoding、UTF-8 with BOM、そしてタグなしで動作しました。私はその後、Python 3でほとんどの日を過ごすことができてとても嬉しくなりました!

関連する問題