シフトJISやEUCをどう扱うか

| コメント(0) | トラックバック(0)

情報処理学会の「デジタルプラクティス」の最新号 (Vol. 2 No. 2)に、プログラミング言語Schemeの処理系Gaucheの開発者による論文が掲載されています。その中に文字コードの扱いについても少し触れられています。興味のある方は読んでみると良いでしょう。

私の目を引いたのは、GaucheにおけるシフトJISとEUCの扱いです。文中に、「選択可能な内部エンコーディングとしては、UTF-8, EUC-JP(JISX0213:2000), Shift JIS (JISX0213:2000)、およびISO-8859-Xをサポートしている」というくだりがあります。この書き方から、GaucheではシフトJISをShift_JISX0213、EUCをEUC-JISX0213として扱っていることが分かります。

このような扱い方は、規格の性質や利点を踏まえた、シンプルで分かりやすく妥当なものだと思います。

ちなみに、奥村晴彦氏の開発したコード変換プログラムkfを私がJIS X 0213対応したときも、やはり、SJISといえばShift_JISX0213 (Shift_JIS-2004)、EUCといえばEUC-JISX0213 (EUC-JIS-2004)のことだ、という方針で行いました。JIS X 0213はJIS X 0208の上位互換なので、これでいいのです。

また、Ruby 1.8でも、ドキュメントにそうは書かれていないものの、SJISを指定したときにはShift_JIS-2004の、EUCを指定したときにはEUC-JIS-2004のデータを処理することができます。私がRubyを使うときにはこれによってJIS X 0213のデータを処理しているのです。(Ruby 1.9はまだJIS X 0213の符号化方式に対応していないようです。今後の対応が期待されます)

SKKではJIS第3・第4水準漢字の辞書を開発・利用しているので、その辞書ファイルを処理するには、こうした処理系が役に立ちます。Pythonのように、JIS X 0213の符号化方式から内部的にUnicodeに変換できるものでもいいですけども。

現代日本のテキストを処理しようとするなら、現代日本の文字に対応した文字コードが必要です。それは、Shift_JIS-2004やEUC-JIS-2004やUTF-8等のことであって、プログラミング言語がそれらの文字コードに対応していることが求められます。

トラックバック(0)

トラックバックURL: http://yanok.net/yanok/mt-tb.cgi/236

コメントする

最近のブログ記事

National Geographic Your Shot で Daily Dozen に選ばれた話
ブログをさぼっている間に時間がずいぶん経…
情報処理学会から山下記念研究賞を頂いた話
ブログをさぼっている間に時間がずいぶん経…
Go と Rustの文字列
Go言語における文字列はUTF-8のバイ…
『[改訂新版] プログラマのための文字コード技術入門』のページ作成
発売されてから半年以上経ってようやくのこ…
『[改訂新版]プログラマのための文字コード技術入門』発売!
ばたばたしていて当サイトの更新も怠ってい…

広告