Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_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) を
       返す。

       一般的に言うと、Linux  では現在のところ BMP の level 1 実装のみを使うべきである。 ある言語
       の文字 (とくにタイ文字) では、ベース文字当たり 2 つまでの合成文字を使うことが UTF-8 端末エ
       ミュレータと  ISO 10646 フォント (level 2) でサポートされている。 しかし一般的に言えば、も
       し可能ならばあらかじめ合成した文字を使うべきである  (Unicode  では、これを   Normalization
       Form C (合成文字の正規化形式) という)。

   プライベート・エリア
       BMP  の 0xe000 〜 0xf8ff の範囲は、規格ではいかなる文字も割り当てず、 私的な使用のために予
       約されている。 Linux コミュニティでは、 このプライベート・エリアをさらに細かく分割して使用
       する。  0xe000  〜 0xefff の範囲はエンド・ユーザーが個々に使用することができる。 0xf000 〜
       0xf8ff の範囲は Linux Zone で 全ての Linux ユーザーで共通に使用する。 Linux Zone  への文字
       割り当ての登録は、 現在 H. Peter Anvin <Peter.Anvin@linux.org> によって管理されている。

   文献
       * 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/⟩ から注文できる CD-ROM で PDF ファイ
         ルとして入手できる。

       * 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/unicode/reports/⟩

       * Markus Kuhn: UNIX/Linux のための UTF-8 と Unicode の FAQ。
         ⟨http://www.cl.cam.ac.uk/~mgk25/unicode.htmllinux-utf8  メーリングリストを購読するための情報がある。 Linux で Unicode を使う場合のア
         ドバイスを探すのに一番良い場所である。

       * Bruno Haible: Unicode HOWTO.
         ⟨ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html

バグ

       このマニュアルページを最後に改訂した時点で、 GNU C ライブラリの UTF-8 サポートは完成してい
       る。  XFree86  によるサポートは進行中である。 UTF-8 ロケールで快適に使えるアプリケーション
       (多くの有名なエディタ) の作成は、まだ進行中である。 Linux での UCS サポートでは通常 CJK の
       2 ワイド文字が提供される。 単純な重ね打ちによる合成文字が提供される場合もある。 しかし、右
       から左へ書く文字やヘブライ文字・アラビア文字・インド語系文字などの  合字の置き換えを必要と
       する文字はサポートされていない。  現在、これらの文字は洗練されたテキスト描画エンジンを備え
       た GUI アプリケーション (HTML ビューア・ワードプロセッサ) でのみ サポートされている。

関連項目

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

この文書について

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