.zip" シフトJISコードからUTF-8コードに変換するスクリプト。

シフトJISコードからUTF-8コードに変換するスクリプト。

シフトJISコードの文字列をUTF-8コードに変換する Perl スクリプトです。

シフトJISコードからUTF-8コードに変換するスクリプト・目次。

スクリプトの概要。

シフトJISコードでエンコードされた日本語文字列をUTF-8コードでのエンコードに変換する Perl スクリプトです。

Perl 5.8.x以降では文字コードの相互変換が標準モジュールとして実装されているため余り役に立たないものと思われますが、旧式のPerl 5.0xなどで利用される場合には役に立つでしょう。

尚、BOM(バイトオーダマーク)は一切附与しません。

また、シフトJISコードから外れるマルティバイト文字は、変換の際に削除されます。

スクリプトの使い方。

  1. スクリプトを収めたZIPファイルをダウンロード (ZIP形式ファイル)して解凍します。
  2. 解凍したスクリプトはお好きなディレクトリにシフトJISコードで設置して下さい。

  3. 当該スクリプトを利用する場合は、当該スクリプトをrequire文で呼び出してから、以下のように変換したい文字列を変数に入れて呼び出します。

    &m_utf::sjis2utf8(\$str);

    呼出し後に、この変数には変換後の文字列が入ります。

スクリプトの仕組み。

シフトJISコードは、JISの区点コードを単純な公式で変換したものです。

同様にJISの区点コードを単純な公式で変換したISO-2022-JPコード(いわゆるJISコード)やEUC日本語文字コードは、元が同じ区点コードなので、当然相互変換も比較的単純に出来ます。

しかしながら、UTF-8コードは、JISの区点コードではなくユニコードを公式で変換したもので、従ってシフトJISコード等との相互変換公式は存在しません。

このため、漢字コード一つ一つに対応した変換表が必要になります。

このシフトJISコードからUTF-8コードに変換するスクリプトでは、変換表を予めハッシュの定義の形で用意しておき、それを正規表現で頭から順に逐一変換していくようにしております。

文字コード変換表をどのようにして作ったか。

記号, 仮名文字, 第一水準, 第二水準など何千もある文字を一つ一つ表にするのは大変です。

今回は、Perl 5.8を利用して、

  1. シフトJISコードの文字0x8041(全角空白)から順に一文字ずつUTF-8に変換させ、
  2. 正当なUTF-8の一文字のコードとなっているものだけをハッシュの定義に加える

と言う処理を行うスクリプトを作成して、それで変換表のみならずスクリプト本体を生成しました。

このお蔭で、僅か数時間で完成しました。

スクリプトの取得。


ページ外へのご案内。