*nixファイル文字符号化変換方法

1975 ワード

毛に変換が必要


歴史的な理由は、社内のsource codeには多くのGBK符号化があふれているが、UTF-8は国際化の文字需要に適していることが明らかになった.変換しない場合は、IDEで各種文字コード切り替え、各種卵痛.うっかりすると、複数のコードが重なり、不可逆的な文字化けが保存され、永遠に文字化けの悪夢になる.もちろん、より良い国際化のサポートは、UTF-8でファイルを保存する以外に、より良い方法は、source codeの中で中国語が現れるべきではありません(もちろん、この点は多くの人に吹き飛ばされるかもしれませんが、まあ、これは重点ではありません.本文の重点はどのように回転しますか).

変換方法


基本的には*nix系自体が提供するiconv一行を利用して問題を解決します.

*nixでの一般的なアプローチ


ここで*nixとは、Unix like(Macを含む)、Linux系での一般的なアプローチであり、出力リダイレクトを利用して
find . -name '*.java'| while read file; do iconv -f GBK -t UTF-8 "$file" > /tmp/a; cp /tmp/a "$file"; done

 
ここでは、パイプの前にあるfindコマンドを修正して、このような関心のあるファイルを取得すればいいのです.

Ubuntuのやり方


DebianリリースのUbuntuバージョンを使用している場合は、おめでとうございます.Linuxの下のiconvの-oパラメータを実際に利用して同じファイルを修正することができます.
find . -name '*.java' -exec iconv -f GBK -t UTF-8 {} -o {} \;

 
注:現在のファイルを置き換える場合、-oパラメータはすべてのLinuxで使用されるわけではありません.
上記の方法は、社内のLinuxリリース版では使いにくいです.修正されたファイルが空になります!だから、安全第一に、あなたはやはり上の共通の命令でしょう.