一般に、Windowsでは、入力ファイルがシフトJISの形式になっていることが多いようですが、漢字コードが含まれていた入力ファイルを処理する場合、文字化けを起こしてしまうことがあります。これは、シフトJISの漢字コードに"\"(16進コードで"5C")や"@"(16進コードで"40")が含まれている場合に発生する現象です。
具体的には、シフトJISの漢字コードに"\"(16進コードで"5C")を含む漢字である「—ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭」の各文字と、シフトJISの漢字コードに"@"(16進コードで"40")を含む漢字である「ァА院魁機掘后察宗拭繊叩邸如鼻法諭蓮僉咫奸廖戞曄檗漾瓠磧紂隋蕁襦蹇錙顱鵝」の各文字および全角スペースを含んでいる場合、文字化けを起こしてしまうことがあります。
また、スクリプトでは、[2-4-2.CSVファイルの文字列型昇順ソート]でソート(並べ替え)キーに半角文字(1バイト文字)の英数字以外を使ったり、[3-1-2.固定長データをCSVデータに変換する]で入力データに全角文字(2バイト文字)を含んでいるときなどに 文字化けが起こりやすくなります。
こうしたことを防ぐため、入力ファイルの文字コードを変更することが必要になります。手作業で入力ファイルを「名前をつけて保存」して、「入力コード」や「エンコード」(テキストエディタによって異なります)の部分を変更しても良いのですが、スクリプトを使って行うのが、以下紹介する方法です。
Encodeモジュール使って、文字コードを変換するスクリプトについて解説します。
perl IO レイヤを使って、文字コードを変換するスクリプトについて解説します。
open プラグマを使って、文字コードを変換するスクリプトについて解説します。