bionic (7) unicode.7.gz

Provided by: manpages-ja_0.5.0.0.20161015+dfsg-1_all bug

名前

       Unicode - 汎用文字集合

説明

       国際規格 ISO 10646 は汎用文字集合 (Universal Character Set (UCS)) を定義している。 UCS は他規格の文字集合
       の文字を全て含んでいる。 さらに、 「双方向の互換性」("round-trip compatibility") を保証する。  つまり、他
       の符号から  UCS に変換しさらに元の符号に変換したとしても、 何の情報も失なわれないように変換テーブルを作成
       することができる。

       UCS は現実的に知られている全ての言語を表現するのに必要な文字を含んでいる。 これにはラテン文字、ギリシャ文
       字、キリル文字、ヘブライ文字、アラビア文字、 アルメニア文字、グルジア文字だけでなく、中国・日本・韓国で使
       われている漢字、  さらには、平仮名、片仮名、ハングル文字、   デーヴァナーガリー文字、ベンガル文字、グルム
       キー文字、グジャラート文字、  オリヤー文字、タミール文字、テルグ文字、カナラ文字、マラヤーラム文字、 タイ
       文字、ラオス文字、クメール文字、ボポモフォ文字 (注音字母)、  チベット文字、ルーン文字、エチオピア文字、カ
       ナダ音節文字、  チェロキー文字、モンゴル文字、  オガム文字、ミャンマー文字、シンハラ文字、 ターナ文字、イ
       (彝) 文字などが含まれる。 まだカバーされていない文字に付いても、 コンピュータで使用するために  どのような
       エンコードがもっとも良いかという研究が進められており、  最終的には追加されるだろう。 ヒエログリフや歴史的
       ないろいろなインド=ヨーロッパ言語だけでなく、 テングワール文字、キアス文字、クリンゴン文字などの人工的な
       言語も選ばれている。  UCS  は、これらの文字に加えて、TeX, PostScript, APL, MS-DOS, MS-Windows, Macintosh,
       OCR フォント、数多くのワードプロセッサーや 出版システム、などが提供する  図形記号・印字記号・数学記号・科
       学記号などの多くを含むようになった。

       UCS 規格 (ISO 10646) は 31 ビットの文字集合アーキテクチャーを記述しており、 128 個の 24 ビット  (group)
       から構成されている。 各群は 256 個の 16 ビット  (plane) に分割されており、 各文字は 256 個の  8  ビット
        (row) の 256  (column) の中に位置する。 この規格の Part 1 (ISO 10646-1) では、 最初の 65534 個のコー
       ド位置 (0x0000 〜 0xfffd) を定義している。 これは第 0 群の第 0 面である 基本多言語面 (Basic  Multilingual
       Plane  (BMP))  を構成する。  この規格の  Part 2 (ISO 10646-2) では、第 0 群の BMP の外部である 0x10000 〜
       0x10ffff の範囲にある 補助面 (supplementary planes) に文字を追加した。 この規格では 0x10ffff を越えた位置
       に文字を追加する予定はないので、 予想できる将来においては、 全コード空間のうちグループ 0 の一部分は実際に
       は使われることはない。 BMP には他の文字集合で一般に使われる全ての文字が含まれている。 ISO 10646-2  で追加
       された補助面は、  特定の科学分野・辞書出版・印刷産業・高次プロトコル・ 何かのファンの間などで使われる特殊
       な文字だけをカバーする。

       UCS 文字を 2 バイトのワードで表現するのが UCS-2 形式である (BMP 文字のみ)。 また、UCS-4 では文字を 4 バイ
       トのワードで表現する。  さらに、ASCII を処理するソフトウェアへの下位互換のために UTF-8 エンコード形式があ
       る。 また、0x10ffff までの非 BMP 文字を扱う UCS-2 対応ソフトウェアとの互換のために UTF-16  エンコード形式
       がある。

       UCS  文字集合の  0x0000  から  0x007f は、古典的な US-ASCII 文字集合の文字と同じである。 また 0x0000 から
       0x00ff の範囲では、ISO 8859-1 (Latin-1) 文字集合の文字と同じである。

   合成文字 (Combining characters)
       UCS のいくつかのコードポイントは 合成文字 (combining characters) に割り当てられている。  これらはタイプラ
       イターの移動しないアクセントキーに似ている。  合成文字は直前の文字にアクセントのみを加える。 最も重要なア
       クセント付きの文字はそれ自身のコードを UCS に持っている。  一方で合成文字機構は全ての文字にアクセントや発
       音区別符号を加えることができる。 合成文字は常にそれが修正する文字に続く。 例えばドイツ語の文字 A ウムラウ
       ト ("Latin capital letter A with diaeresis") は UCS に前もって準備されたコード  0x00c4  でも、  通常の  A
       "Latin  capital letter A" に "combining diaeresis (合成分音記号)" を続けた組合せ (0x0041 0x0308) のどちら
       でも表現することができる。

       合成文字は、タイ文字や数学植字のエンコード・ 国際音声字母を使うユーザーなどには必須である。

   実装レベル
       全てのシステムに合成文字のような進んだサポートを期待しているわけではない。 ISO  10646-1  は以下の三段階の
       UCS の 実装レベル を指定している。

       Level 1  合成文字とハングル・ジャモ文字  (いろいろな韓国・朝鮮文字の符号化。 この符号化では、ハングル音節
                のグリフが 3 つまたは 2 つの母音・子音コードの組み合わせで符号化される) はサポートしない。

       Level 2  Level 1 と同様だが、合成文字を必須とする言語のための文字 (例えば、タイ文字・ラオス文字・ヘブライ
                文字・アラビア文字・ デーヴァナーガリー文字・マレヤーラム文字) は使える。

       Level 3  全ての UCS 文字をサポートする。

       ユニコードコンソーシアム (Unicode Consortium) から発行された Unicode 3.0 Standard は、ISO 10646-1:2000 に
       記述された UCS Basic Multilingual Plane の level 3 実装と全く同じである。 Unicode 3.1 では ISO 10646-2 の
       補助面が追加されている。  Unicode Consortium から発行される Unicode 規格と技術レポートにより、 いろいろな
       文字の意味と推奨される使用法についての更なる情報が得られる。 これらの規格書や技術レポートで、Unicode 文字
       列を 編集・並べ替え・比較・正規化・変換・表示するための ガイドラインとアルゴリズムが分かる。

   Linux における Unicode
       GNU/Linux では、C 言語の型 wchar_t は符号付き 32 ビット整数型である。 その値は C ライブラリにより (すべて
       のロケールにおいて) 常に UCS コードの値として解釈される。 これを GNU C ライブラリがアプリケーションに知ら
       せるための規約として、 定数 __STDC_ISO_10646__ を定義する。 これは ISO C99 規格で指定されている。

       ASCII  互換の  UTF-8  マルチバイトエンコードでは、入出力ストリーム・端末通信・ プレーンテキストファイル・
       ファイル名・環境変数において、 UCS/Unicode を ASCII のように使うことができる。 UTF-8 を文字エンコードとし
       て使うことを  全てのアプリケーションに知らせるためには、 ("LANG=en_GB.UTF-8" のように) 環境変数を使って適
       切な ロケール (locale) を選択しなければならない。

       nl_langinfo(CODESET) 関数は選択されたエンコードの名前を返す。 内部的な wchar_t 文字や文字列をシステム文字
       列エンコードに変換  (逆変換) するのに使われる wctomb(3) や mbsrtowcs(3)、さらには wcwidth(3) といったライ
       ブラリ関数は、 文字出力でどれだけカーソルが進んだか (0–2) を返す。

   プライベートエリア
       基本多言語面 (Basic Multilingual Plane (BMP)) では、 0xe000 〜 0xf8ff  の範囲は、規格ではいかなる文字も割
       り当てず、 私的な使用のために予約されている。 Linux コミュニティでは、 このプライベートエリアをさらに細か
       く分割して使用する。 0xe000  〜  0xefff  の範囲はエンドユーザーが個々に使用することができる。  0xf000  〜
       0xf8ff の範囲は Linux Zone で 全ての Linux ユーザーで共通に使用する。 Linux Zone への文字割り当ての登録は
       LANANA (The Linux Assigned Names And Numbers Authority) により管理されており、 登録自体は Linux  カーネル
       ソースの Documentation/unicode.txt で行われている。

   文献
       *  Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 1: Architecture and
          Basic Multilingual Plane.  International Standard  ISO/IEC  10646-1,  International  Organization  for
          Standardization, Geneva, 2000.

          これは UCS の公式な仕様である。 ⟨http://www.iso.ch/⟩ から入手できる。

       *  The  Unicode  Standard,  Version 3.0.  The Unicode Consortium, Addison-Wesley, Reading, MA, 2000, ISBN
          0-201-61633-5.

       *  S. Harbison, G. Steele. C: A Reference Manual. Fourth edition, Prentice Hall, Englewood Cliffs,  1995,
          ISBN 0-13-326224-3.

          C  プログラム言語についてのとても良い参考書である。 第四版では、ワイド文字やマルチバイト文字エンコード
          を扱うための 多くの新しい C ライブラリ関数が 加えられた ISO C90 規格の 1994 Amendment 1 をカバーしてい
          る。 しかし、ワイド文字やマルチバイト文字のサポートを 更に改善した ISO C99 は、まだカバーしていない。

       *  Unicode 技術レポート。
          ⟨http://www.unicode.org/reports/⟩

       *  Markus Kuhn: UNIX/Linux のための UTF-8 と Unicode の FAQ。
          ⟨http://www.cl.cam.ac.uk/~mgk25/unicode.html⟩

       *  Bruno Haible: Unicode HOWTO.
          ⟨http://www.tldp.org/HOWTO/Unicode-HOWTO.html

関連項目

       locale(1), setlocale(3), charsets(7), utf-8(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。