よく海外のテキストファイルを頂きますが、日本語に変える事でUTF-8に保存し直しております。
海外の形式はASCIIなのでしょうか?日本語が変わることでS-JIS又はUTF-8に変更しないとなりません。
WEB上でBLOGテンプレートをいじるときに、日本語化するために
シェルで多数のファイルをUTF-8に一括変換する方法があればお教えください。
一枚ずつ、セーブし直すと時間がかかりそうですので。
よろしくお願いします。
海外のテキストファイルと言っても、中国語やハングル語のテキストファイルも、海外のテキストファイルですが...。
海外の形式はASCIIなのでしょうか?
英語のテキストファイルの事を行っているのであれば、ASCII のテキストファイルは UTF-8 と互換性があります。
つまり、ASCII コードの範囲しか使われていないテキストファイルは、変換すること無く、UTF-8 のファイルとして扱えます。
追記:
macを使っていますが、ファイルを落として開くとS-JISになってしまい、
Mac ユーザではないですが、ASCII 文字のみテキストファイルを、Shift_JIS 扱いで開くエディタは多いです。
純粋に ASCII コードの範疇の文字しか無ければ、ASCII でも、Shift_JIS でも UTF-8 でも同じです。
仮に「abc123」という中身のテキストファイルがあれば、ASCII コードでも、Shift_JIS でも、UTF-8 でも「61 62 63 31 32 33」(16 進数表記)というバイト列です。逆にこのバイト列を与えられたとき、その文字コードは ASCII かもしれないし、Shift_JIS かもしれないし UTF-8 かもしれません。エディタが文字コードを判定する事を考える場合、純粋な ASCII コードしか無い場合には、それを Shift_JIS としても、UTF-8 でも正解なので、どれを採用するかはエディタ次第です。
# 但し、Winodws のメモ帳の場合、「EF BB BF」という3バイトが先頭に付く。
気がつくと文字化けに見舞われています。
もし、本当に ASCII コードのみテキストファイルであれば、意図的に UTF-16 など、ASCII と互換性がないコードとして開かない限り、文字化けする事は考えにくいです。
なので、私の回答の最初に戻りますが、「海外のテキストファイル」と言っても色々あります。中国語やハングル語なら分かりやすいですが、ドイツ語やフランス語にある、「アルファベットと記号が組み合わされたような文字」が一つでもあれば、そもそも、ASCII コードでは無いことになります。
エディタに限らず、多くの文字コードの判定は、テキストファイルの全ての文字コードを調べるのではなく、ある程度のバイト数を読み込んだところで、「これは、この文字コードだろう」と判断します。なので、推定した文字コードが正しいとは限りませんし、厳密には、文字コードが先に分かっていないテキストファイルを、特定の文字コードへ正確に変換する事は出来ません。
という原理原則はありますが、予め文字コードが分かっていれば、MacOS に iconv が標準で入っているようです。
404 Blog Not Found:tips - Mac OS X - には iconv も piconv も入っている
あと、MacOS ようの nkf もあるようです。
http://homepage.mac.com/matsuan_tamachan/software/NkfInstall.html
nkf の方が全般に親切で、文字コードの推定も出来ますし、多少、特殊なコードが混じっていても、可能なかぎり変換してくれます。iconv はちょっとでも間違いを見つけると、そこで処理を中断してしまうような、厳格さがあります。
海外のテキストファイルと言っても、中国語やハングル語のテキストファイルも、海外のテキストファイルですが...。
海外の形式はASCIIなのでしょうか?
英語のテキストファイルの事を行っているのであれば、ASCII のテキストファイルは UTF-8 と互換性があります。
つまり、ASCII コードの範囲しか使われていないテキストファイルは、変換すること無く、UTF-8 のファイルとして扱えます。
追記:
macを使っていますが、ファイルを落として開くとS-JISになってしまい、
Mac ユーザではないですが、ASCII 文字のみテキストファイルを、Shift_JIS 扱いで開くエディタは多いです。
純粋に ASCII コードの範疇の文字しか無ければ、ASCII でも、Shift_JIS でも UTF-8 でも同じです。
仮に「abc123」という中身のテキストファイルがあれば、ASCII コードでも、Shift_JIS でも、UTF-8 でも「61 62 63 31 32 33」(16 進数表記)というバイト列です。逆にこのバイト列を与えられたとき、その文字コードは ASCII かもしれないし、Shift_JIS かもしれないし UTF-8 かもしれません。エディタが文字コードを判定する事を考える場合、純粋な ASCII コードしか無い場合には、それを Shift_JIS としても、UTF-8 でも正解なので、どれを採用するかはエディタ次第です。
# 但し、Winodws のメモ帳の場合、「EF BB BF」という3バイトが先頭に付く。
気がつくと文字化けに見舞われています。
もし、本当に ASCII コードのみテキストファイルであれば、意図的に UTF-16 など、ASCII と互換性がないコードとして開かない限り、文字化けする事は考えにくいです。
なので、私の回答の最初に戻りますが、「海外のテキストファイル」と言っても色々あります。中国語やハングル語なら分かりやすいですが、ドイツ語やフランス語にある、「アルファベットと記号が組み合わされたような文字」が一つでもあれば、そもそも、ASCII コードでは無いことになります。
エディタに限らず、多くの文字コードの判定は、テキストファイルの全ての文字コードを調べるのではなく、ある程度のバイト数を読み込んだところで、「これは、この文字コードだろう」と判断します。なので、推定した文字コードが正しいとは限りませんし、厳密には、文字コードが先に分かっていないテキストファイルを、特定の文字コードへ正確に変換する事は出来ません。
という原理原則はありますが、予め文字コードが分かっていれば、MacOS に iconv が標準で入っているようです。
404 Blog Not Found:tips - Mac OS X - には iconv も piconv も入っている
あと、MacOS ようの nkf もあるようです。
http://homepage.mac.com/matsuan_tamachan/software/NkfInstall.html
nkf の方が全般に親切で、文字コードの推定も出来ますし、多少、特殊なコードが混じっていても、可能なかぎり変換してくれます。iconv はちょっとでも間違いを見つけると、そこで処理を中断してしまうような、厳格さがあります。
macを使っていますが、ファイルを落として開くとS-JISになってしまい、気がつくと文字化けに見舞われています。
使い方の問題かもしれませんが、シェルのコマンドがわかればそれで解決します。
MacはUTF-8の環境です。エディターは主にCotEditor又はCodaで共に、UTF-8機能は備えています。
文字化けが起こるのは下記の手順でしょうか?
1. Linux サーバ上にある ASCII のファイルをダウンロード
2. Mac 上で編集のために CotEditor等 で開く
3. 日本語を加える
4. そうすると Shift-JIS になる
5. Linux サーバに Shift-JIS になったファイルを戻すと、サーバは UTF8 の設定なので、文字化けの原因になる
この場合の解決方法としては二つあります。
(日本語を加える前の ASCII のファイルを UTF8 に変換する事はありません。ASCII は UTF8 だからです)
1. (CotEditor 等で)編集する際に、UTF8 で扱う
エディタで確実に UTF8 を使えるように設定して下さい。
これが正統な解決方法です。
私は使ったことが有りませんが、CotEditor だとここらへんに記述が有ります。
http://www.aynimac.com/p_blog/article.php?id=745
http://www.aynimac.com/p_blog/article.php?id=1087
2. Linux サーバに移してから UTF8 にする
iconv を使う場合には文字コードの自動判別機能が有りませんので、元ファイルは確実に SHIFT-JIS である必要が有ります。
# 拡張子 .txt のファイルを変換 # ファイル名に .back を加えてバックアップ for file in *.txt; do mv $file $file.back; iconv -f SHIFT-JIS -t UTF8 $file.back -o $file; done
nkf の場合。
# 拡張子 .txt のファイルを変換 # ファイル名に .back を加えてバックアップ # 入力ファイルの文字コードは自動判別 for file in *.txt; do mv $file $file.back; nkf -O -w8 $file.back $file; done
macを使っていますが、ファイルを落として開くとS-JISになってしまい、気がつくと文字化けに見舞われています。
使い方の問題かもしれませんが、シェルのコマンドがわかればそれで解決します。
MacはUTF-8の環境です。エディターは主にCotEditor又はCodaで共に、UTF-8機能は備えています。