Hatena Blog Tags

ユニコード

(コンピュータ)
ゆにこーど

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

概要

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

エンコード方法

エンコードの方法に「UTF-8」、「UCS-2(UTF-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のコードは変換しないと言う事で落ち着いている様である。

バージョン推移

  • 1991年、Unicode 1.0が制定。
  • 1993年、Unicode 1.1
  • 1996年、Unicode 2.0:ハングルコードの改訂に伴うハングルの大移動が行われた。Unicode1.xとUnicode2.0のハングルコードは全く互換性が無く、一部で混乱を招いた。
  • 1998年、Unicode 2.1
  • 2000年、Unicode 3.0:CJK統合漢字の拡張Aで漢字6582字を追加。一方、UCS-2に2文字文を1文字として扱うサロゲートペアを導入(サロゲートペアを扱えるUCS-2は、UTF16とも言う)。この辺りからUNICODE本来の目的から外れて、古典文字までもを扱えるような拡張が行われ始めている。たとえばルーン文字やオガム文字などの拡張である。
  • 2001年、Unicode 3.1:CJK統合漢字の拡張Bで漢字42711字を追加など。
  • 2002年、Unicode 3.2:JIS X 0213に対応
  • 2003年、Unicode 4.0.0
  • 2005年、Unicode 4.1.0
  • 2006年、Unicode 5.0.0
  • 2008年、Unicode 5.1.0
  • 2009年、Unicode 5.2.0:CJK統合漢字の拡張Cで漢字4149字を追加。他にヒエログリフや日本の地図記号の追加など。
  • 2010年、Unicode 6.0.0:日本の携帯電話で使用されている絵文字を追加。他にCJK統合漢字の拡張Dで漢字222字の追加など。
  • 2012年、Unicode 6.1.0
  • 2012年、Unicode 6.2.0:新トルコリラ通貨記号の追加など
  • 2013年、Unicode 6.3.0
  • 2014年、Unicode 7.0:、顔文字(Emoticon)、地図や交通関連など2834個の新たな記号が追加。


Unicode標準入門

Unicode標準入門

*1:*China, Japan, Korea

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。

ネットで話題

もっと見る

関連ブログ