Windowsのtypeコマンドが、UnicodeをシフトJISに変換する機能を持っていることを知りました。もう何年も前からtypeコマンドで文字コードを変換できたようですが、私はそんなことも知らずに文字コード変換ツールを探し回っていました。あふ……。
typeコマンドで文字コードを変換できるなら、以前テキスト処理用に作ったPerlスクリプトを活用できます。以前のスクリプトは、いずれも文字コードがシフトJISであることを前提にしており、そのままではUnicodeのファイルを処理できません。ところが、typeコマンドで文字コードを変換できるなら、ほんのわずかな変更で簡単にUnicodeに対応させることができます。
このopen関数を以下のように書き換えるだけでUnicodeに対応します。入力ファイルをtypeして、その結果をパイプでPerlに渡しているだけです。
簡単♪ もっと早く知っていれば、文字コードの変換に苦労することもなかったなぁ。
なお、使用OSはWindows XP Professional Service Pack 3です。
typeコマンドで文字コードを変換できるなら、以前テキスト処理用に作ったPerlスクリプトを活用できます。以前のスクリプトは、いずれも文字コードがシフトJISであることを前提にしており、そのままではUnicodeのファイルを処理できません。ところが、typeコマンドで文字コードを変換できるなら、ほんのわずかな変更で簡単にUnicodeに対応させることができます。
変更前のコード open( INPUT, "
このopen関数を以下のように書き換えるだけでUnicodeに対応します。入力ファイルをtypeして、その結果をパイプでPerlに渡しているだけです。
変更後のコード
open( INPUT, "cmd /C type $file|")
or die "Failed to run 'type $file' command\n";
# ... 処理 ...
close( INPUT);
簡単♪ もっと早く知っていれば、文字コードの変換に苦労することもなかったなぁ。
なお、使用OSはWindows XP Professional Service Pack 3です。