FAQ UTF と Unicode

このページはunicode.orgの英語版FAQを元に作成しました。

Q1. UTFとは何か

Unicode Transformation Formatの略。文字コードのひとつである, Unicodeをある一定の計算方法にのっとって割り付けマッピング したもの。

UTFとUnicodeは1対1変換可能な関係にある。すなわち,全てのUTFは, いかなるUnicode文字列Sをも一旦変換してまた逆変換すれば Sに戻るような 割り付けマッピング となっている。

Q2. UTF-8の定義は?

Unicode技術委員会Unicode Technical Comittee は,最近UTF-8の定義を修正した。更なる情報は, UTF-8 Corrigendumを参照のこと。

Q3. UTF-8のコード化方法は,プロセッサの種類(リトル エンディアンとビッグエンディアン)に依存しないか?

依存しない。UTF-8は1バイトのデータの列で表される。 従い,16-bitや32-bitの値で問題になるエンディアンの問題は発生しない。

Q4.UTF-8コード化スキームは既存のASCIIやEBCDICコードと同 等のirrespectiveか

ほぼ同じである。しかしながら,標準UTF-8はEBCDIC システムとは相互互換性が無い。なぜなら,コントロールコードに 違いがあるからである。UTF-EBCDICを使用することでこの問題を回避 できる。UTF-EBCDICの仕様についてはUnicode Technical Report #16を 参照のこと。

Q5.どれを選んだらいいのか:UTF-8, UTF-16, UTF-16LE, UTF- 16BE, UTF-32, UTF-32LE, UTF-32BE?

一概に決められない。WEBでもっとも普通に使われるのは UTF-8である。UTF-16, UTF-16LE, UTF-16BEは,JavaとWindowsで使用 される。UTF-32LEとUTF-32BEはいろいろなUnixで使わている。

Q6. UTF-16とは何か?

Unicodeは現代の言語を表現するための文字ひとつひとつに 16-bitのコードを割りあてたものである。(古代言語に使用される文字は, 私用領域として予約されたコードを使うつもりであった)。14,500以上の 文字の割り付けを経て,16-bitで十分文字を表現できるという考えに基づ き,UTF-16が生まれた。

UTF-16は約65000文字を表現することが可能である。また, あらかじめ予約されている拡張の仕組みを利用することで,約100万 の文字を追加できる。Unicodeコード値の二つの範囲(0xD800から 0xDBFFと,0xDC00から0xDFFF)が予約されている。Unicode 3.0では この拡張の仕組みは用意されていない。日常用いられる文字のほとんどが 先の約65,000文字に含まれているからで,追加の必要のある文字は少ない だろうというのがUnicode関係者の見解。

Q7. UTF-16は拡張できるのか?

できる。UTF-16で表現される全ての文字は,UTF-32ては 32-bitの一文字で表現される。この32bitの値は,Unicodeの文字コード そのものである。UTF-32はISO10646で定められたUCS-4というコード 化規格の一部である。詳しくは, 技術文書#19 UTF-32を参照のこと。

Q. HTMLにおいて一枚のページに複数の言語を掲載しようと する場合はどうすればよいのか?

HTML(またはXML)では,2つの方法:1)NCRを使用する, 2)使用する文字全てを含んだ文字集合(charset)を使用する---がある。

NCRとは何か?

NCRとは,文字をそのまま使う代わりにその文字に割り当て られている文字コードで表現する方法。例えば,"a"という文字を文字 コードで表現すると"a"(16進数表現)あるいは"a"(10進数表現) となる。


Original:8-DEC-2000; Update: 19-DEC-2000; COPYRIGHT(C)2000 by Kentaro Uono; All rights are reserved.