いろんなものはつながっている

Unicode、文字集合と符号化ということか

UnicodeやらUCSやらUTF-8やらと、いろいろ目にするがよくわからない。いったいこれらの関係はどういうものか調べてみた。

そもそも「文字」を定義し表現するには、文字集合エンコーディング(符号化方式)という概念があるようだ。

文字集合とは、
unicode_文字集合
こんなイメージかな。文字集合の種類によって含まれている文字の数や種類が違う。

で、符号化とは、これらの文字をどんなビット列で表すかというルール。
なので、こんな感じか。
unicode_符号化
ユニコード(あえてカタカナで書いた)というが、UnicodeとUCS=Universal Coded Character Setの2種類の規格があるようだ。

Unicodeは、ユニコードコンソーシアムという団体が決めている。UCSは思想を同じくして、ISO化された規格。乱暴な言い方をしてしまうと、Unicodeは企業連合が決めた私的な文字集合。UCSは国際機関が定めた公的な文字集合といえるだろう。(とはいっても、UCSの策定にはユニコードコンソーシアムが大きく関与しているようだ)

集合の大きさは、Unicodeは21ビット、USCには、USC-2という16ビットのもの、USC-4という31ビットのものがある。

ということで、Unicode, UCS-2, UCS-4とういうのは文字集合にあたる。

一方、UTF-なんちゃらというが、エンコーディング(符号化方式)にあたる。符号化方式も、UnicodeのUTFと、UCSのUTFがあるようだ。(大きくはかわらないみたいですが、、)。

主な符号化方式に、UTF-8、UTF-16、UTF-32というものがある。UTF-8は文字によって表現するバイト数が異なるが、UTF-16、UTF-32は固定である。UTF-8では、ASCII文字は1バイトで表現されてビット列もASCII形式と同じであるところが扱いやすいんだろう。

・UTF-8
ASCII文字が1バイトで表される代わり,ギリシア文字やロシア文字は2バイト,漢字や仮名などは3バイト等、最大6バイトにエンコード

・UTF-16
ユニコード1文字を,常に16ビットで表す文字コード

・UTF-32
ユニコード1文字を,常に32ビットで表す文字コード

・おまけ1
ちょっと古いページだがUNICODEを取り巻く環境について当事者が説明してくれている。

・おまけ2
BASE64について。エンコードの方法がわかりやすく書いてあった。

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

スポンサード リンク

カテゴリー

スポンサード リンク