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