スマートフォン用の表示で見る

ユニコード

ユニコードコンソーシアムにより作られ、標準化された文字コード。多言語の文字を扱うことが特徴。Unicode

概要

元々2バイトですべての言語の文字を現そうとした規格で、ゼロックスが提唱し、アメリカ企業が積極的に参加していた。アプリケーションを1度書けばすべての言語に対応できるからである。一方日本などCJK*1圏ではわずか2バイト(65536文字)ですべての文字が現せる訳がないので否定的であった。結局CJK圏の拡張コードなどを入れていくと2byteで収まり切らなくなり、拡張される事になった。

ユニコードの構造上文字を現すことが出来るが言語を区別できない為、多言語文字混在環境は実現出来ても多言語環境を実現するのはユニコードのみだけでは無理と言われている。

エンコード方法

エンコードの方法に「UTF-8」、「UCS-2UTF-16下位互換あり)」、「UCS-4(UTF-32と互換有り)」などがある。また、UCSには、上位バイトが先に来る「ビッグエンディアン方式」と最後に来る「リトルエンディアン方式(インテル形式)」がある。基本的にUCSは固定長、UTFは可変長であり、これらのエンコードの方式の多さが混乱を招いている。

Windowsでは

Windowsは、UCS-2を採用、一方Javaなどのアプリケーションは内部でUTF-16、外部でUTF-8を使っている。これは、既存のアプリケーションのコードを大幅に変えることなくユニコード対応に出来るからである。

なお、Windowsでは、JIS勧告と間違ったユニコードSJISマッピングを行ったために、「WAVE DASH - FULLWIDTH TILDE問題」などの互換性の問題を引き起こし、異機種間のアプリケーション間での互換性の問題にもなっている。またJISの円マーク(\ Halfwidth Yen)とASCIIバックスラッシュが同一コードの為、「\」記号をユニコードに変換するとCやJavaなどのアプリケーションが動かなくなってしまう「Japanese Yen問題」があるが、ASCIIの下位7bitのコードは変換しないと言う事で落ち着いている様である。

バージョン推移


Unicode標準入門

Unicode標準入門

*1:*China, Japan, Korea