
すでに世の中、シフトJISから、UTF-8型式に文字コード体系が変化しています。
しかし、Perl/CGIのプログラムについては、その多くが「shift_jis」で稼働している状況です。ここで、最低限の移行・修正処理により、UTF-8型式へ移行・変換する対応を整理しました。
FileCode Checkerによる文字コード変換
上記のFileCode Checkerは、フリーソフトです。Win10版を導入しましょう。
フォルダ内ファイルを旧文字コード型式から、全てUTF8型式へ一括変換できます。
変換内容
- 文字コード:UTF8
- 改行コード:CRLF
- 元のファイルを置換(事前にバックアップを作成しておく)
変換手順
変換前のファイルについて、全てバックアップを作成しておきます。
FileCode Checkerのツールを起動
txt、cgi、datなど、旧コードの「shift_jis」で書かれたテキストファイルをドラッグ&ドロップして、全てのファイル内容を「UTF8」形式へ文字コードを一括変換します。
jcode.plからjacode.plの導入
cgiプログラムを利用している方なら、jcode.plは聞いたことがある名称でしょう。
- jcode.plは、UTF8に対応していないため、UTF8に対応する、jacode.plへ置き換えます。
- jacode.plをネットからダウンロードし、jcode.plと同じ場所に置く
- cgi内で、jcode.plを指定しているパス名を、jacode.plに置き換える。
jacode.plのメリットは、CGI内の旧jcode.plのロジック箇所が、そのまま使える点です。
jcode.pmモジュールが最新ですが、対応するロジックへ大幅に書き換える必要が出てきます。
CGI内の文字コード指定をSJISからUTF8に変更
HTMLの文字コード指定
下記の指定箇所は全て書換え
- 変更前:meta charset=”shift_jis“
- 変更後:meta charset=”utf-8″
入力文字の文字コード指定
下記の指定箇所は全て書換え。ロジックの箇所は、jacodeではなく、jcodeとなっている事を確認。
- 変更前:&jcode’convert(*****,’sjis‘)
- 変更後:&jcode’convert(*****,’utf8′)
メールヘッダーの文字コード指定
下記の指定箇所は全て書換え
- 変更前:Content-type: text/plain; charset=ISO-2022-JP
- 変更後:Content-type: text/plain; charset=utf-8
FTPで対象ファイルをサーバーホストへアップして稼働確認
これで、UTF8形式により、ほぼ文字化けの発生しないCGIが動作する事でしょう。
文字化けが発生した場合、上記の青字部分を確認して、再テストを実施下さい。
これで当分イケるPerlのまとめ
UTF8に変換後、2年ほど経過しましたが、シフトJIS時代に発生していた文字化けも、ほぼ無くなったように思います。2000年代初頭のPerlプログラムも当分稼働できるでしょう。
CMS(PHP)に移植を試みたPerlもいくつか登場しては消えていきました。やはり、純粋な機能に特化したPerlは、そのまま使うのが良いとの結論です。