« 2010年9月 | トップページ | 2012年2月 »

2011.10.23

Unicode固有文字とUnicode依存文字

最近、Webを見ていて、「Unicode固有文字」という用語が使われている場合がある事に気がついた。世界中にはUnicodeでしか文字コードとして表現できない文字(楔形文字など?)は存在するが、日本で使われている文字の大半はUnicodeに収録される以前から他のコード(Adobe-Japan1-6など)に収録されているので、Unicodeに「固有」であるという事はまずない。

「固有」は変という事からか、「Unicode依存文字」という言い方もあるようだ(これは、MS IMEの「環境依存文字 (unicode)」という表現から派生したのかもしれない)。しかし、先に述べたようにUnicodeに「依存」しない表記はほとんどの場合可能である。内部処理でUnicodeに依存しているのだと言うのであれば、WindowsにしてもMacintoshにしても現在では全ての文字がUnicocdeに依存している状態である。そもそもHTMLの規格レベルでUnicode(厳密にはUCS)に依存しているのであるから、Web上の文字は全てUnicode依存と言っても差し支えない。

という訳で、Unicocde固有(ないし、Unicode依存)文字の意味は自明ではない。定義が必要だが、意味が述べられているところでは「(シフト)JISに存在しない」文字が多かった(少数だが「EUCに存在しない文字」というのもあった)。しかし、シフトJISとはなんぞやというのは意外と難しい。そもそもJISと言ってもJIS X 0208なのか0213なのか不明である。シフトJISからは IANAの "Shift_JIS" を連想する(Shift_JISはJIS X 0208ベースである)が、シフトJISと言った場合はWindows-31jの事を意味している場合の方が多いであろう。EUCも複数あるが、IANAの "EUC-JP" であれば、JIS X 0208とJIS X 0212がベースである。

抽象的で良く解らないと思われるため、例として、以下の文字を含むか否かを考える。

  • 丸数字「①」
  • 森鷗外の「鷗」
  • 內田百閒の「閒」
  • アクセント符号付きのアルファベット「À」

Unicode固有文字の明確な定義がある訳ではないので、上記の文字に対して一貫した答えは出ない。JIS X 0208ベースであれば上記の文字は全て「Unicode固有」となる*1であろう。Windows-31jであれば、「鷗」と「À」だけが「Unicode固有」となるであろうし、EUC-JPであれば「①」と「閒」だけになるであろう。結局のところ、単に特定の実装(処理系)で表せない文字を「Unicode固有」等の言葉で表現しているものと思われる。「表せない文字」を定義するのは無理があるため、表せる文字の方を定義すべきである。

--------
*1: 厳密には包摂しているため表現可能な文字も存在するが、字体を区別する事はできない。

« 2010年9月 | トップページ | 2012年2月 »

最近のトラックバック

無料ブログはココログ

Googleアナリティクス

  • Googleアナリティクス