これからの文字コード

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

結論からいってしまうと、これからの文字コードの使用は下記のように考えるのがいいと思います。なおここでは、ファイルなどに使う外部コードのことを前提とします。

  • デフォルトではUTF-8を使う
  • ただし、SJISの符号体系が必要な場合はShift_JIS-2004を使う
  • ただし、EUCの符号体系が必要な場合はEUC-JIS-2004を使う

肝心な点は、いつでもJIS X 0213の文字をサポートする符号化方式を使うということです。現在はJIS X 0208の文字は、どこでも使えることが保証されるような、ベースラインとしての役割を果しています。しかしそれでは文字が足りないので、そのベースラインをJIS X 0213の範囲に拡大するということです。こうすることには大きな意味があります。

符号化方式としてデフォルトでUTF-8を用いるメリットは、国際対応がしやすくなることです。ソフトウェアを開発しました、これを海外でも使えるようにしたい、というときに、はじめからUTF-8に対応していれば、考えることをひとつ減らせるわけです。

Twitterを考えてみましょう。世界の様々な人が使うサイトです。このサイトがLatin-1やShift_JISで作られていたとしたら、世界展開に障害が出てくるのは明らかです。UTF-8がいいというのはそういうことです。私のタイムラインには日本の文字だけでなく、チベット文字や中国簡体字がしばしば流れてきます。そうした様々な文字を一度に扱うにはUTF-8がいいというのは異論のないところでしょう。

といっても、世の中のソフトウェアが全てそういう種類のものばかりだというわけではありません。JIS X 0208の時代から、限定された場所でのみ長い期間使われ続けていて、細々と保守されているようなソフトウェアもあるわけです。そういうものに、何がなんでも手間をかけてUTF-8に変えろというのは合理性がない。

そういう場面では、JIS X 0213の符号化方式が有用です。従来のJIS X 0208では文字が足りないのは明白ですが、しかしUnicodeに変えるのはおおげさすぎるしあまり意味がない、というときは、JIS X 0213を使えばいいのです。

例えば、プログラムがShift_JISの符号構造を前提にして動いていて、それを変えたくない、というときには、Shift_JIS-2004を採用すれば、最小限の変更で、足りない文字を大幅に補うことができます。同様に、EUCの場合はEUC-JIS-2004を採用すればいいのです。

今後、SJISとかEUCとかいうときには、それぞれShift_JIS-2004、EUC-JIS-2004をデフォルトにするのが良いと私は思います。そうでないと文字が足りないからです。小学校3年でJIS X 0208にない文字を習うと以前書きました。電子書籍にもJIS X 0213の文字が必要だということも以前論じました。今後は、JIS X 0213の文字に対応した符号化方式を常に使うべきでしょう。

該当する人はあまりいないでしょうが、1バイトコードとの混在なしで7ビットのJIS X 0208を2バイト固定で使っていた場合には、JIS X 0213の漢字用8ビット符号というのが有用です。これはX0213の漢字集合1面をGLに、2面をGRに置いたもので、JIS X 0213の全文字を2バイトで表現できるものです。データフォーマットの中に2バイト固定でJIS X 0208の文字を入れていたケースでは、こういう方式を使うことでJIS X 0213対応ができるのです。

かつて、「子育てしない男を父とは呼ばない」というテレビCMがありました。これからのキャッチフレーズは、「JIS X 0213に対応しないソフトウェアは、日本語対応とは呼ばない」です。

トラックバック(0)

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

コメントする

最近のブログ記事

Javaと Pythonの識別子の仕様を比較する
前の記事で,Pythonの識別子のUni…
Pythonの識別子における Unicode文字
プログラミング言語Pythonで,変数名…
アニメ「シュタインズ・ゲート」における文字コード技術入門
以前,何年も前ですが,アニメ「シュタイン…
仮名合字・合略仮名の文字コード
合字とは 合字というものがあります。複数…
なぜ『プログラマのための文字コード技術入門』の改訂新版にはSKKと Emacsの話が入っていないのか
拙著『[改訂新版] プログラマのための文…

広告