OSDN Git Service

(split) LDP: Update the version to 3.53 in PO files
[linuxjm/LDP_man-pages.git] / release / man7 / unicode.7
1 .\" Copyright (C) Markus Kuhn, 1995, 2001
2 .\"
3 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
8 .\"
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
13 .\"
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 .\" GNU General Public License for more details.
18 .\"
19 .\" You should have received a copy of the GNU General Public
20 .\" License along with this manual; if not, see
21 .\" <http://www.gnu.org/licenses/>.
22 .\" %%%LICENSE_END
23 .\"
24 .\" 1995-11-26  Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
25 .\"      First version written
26 .\" 2001-05-11  Markus Kuhn <mgk25@cl.cam.ac.uk>
27 .\"      Update
28 .\"
29 .\"*******************************************************************
30 .\"
31 .\" This file was generated with po4a. Translate the source file.
32 .\"
33 .\"*******************************************************************
34 .TH UNICODE 7 2012\-08\-05 GNU "Linux Programmer's Manual"
35 .SH 名前
36 Unicode \- 汎用文字集合
37 .SH 説明
38 国際規格 \fBISO 10646\fP は \fB汎用文字集合 (Universal Character Set (UCS))\fP
39 を定義している。
40 UCS は他規格の文字集合の文字を全て含んでいる。
41 さらに、
42 \fB双方向の互換性 (round\-trip compatibility)\fP を保証する。
43 例えば他の符号から UCS に変換しさらに元の符号に変換したとしても、
44 何の情報も失なわれないように変換テーブルを作成することができる。
45
46 UCS は現実的に知られている全ての言語を表現するのに必要な文字を含んでいる。
47 これにはラテン文字、ギリシャ文字、キリル文字、ヘブライ文字、アラビア文字、
48 アルメニア文字、グルジア文字だけでなく、中国・日本・韓国で使われている漢字、
49 さらには、平仮名、片仮名、ハングル文字、
50 デーヴァナーガリー文字、ベンガル文字、グルムキー文字、グジャラート文字、
51 オリヤー文字、タミール文字、テルグ文字、カナラ文字、マラヤーラム文字、
52 タイ文字、ラオス文字、クメール文字、ボポモフォ文字 (注音字母)、
53 チベット文字、ルーン文字、エチオピア文字、カナダ音節文字、
54 チェロキー文字、モンゴル文字、
55 オガム文字、ミャンマー文字、シンハラ文字、
56 ターナ文字、イ (彝) 文字などが含まれる。
57 まだカバーされていない文字に付いても、
58 コンピュータで使用するために
59 どのようなエンコードがもっとも良いかという研究が進められており、
60 最終的には追加されるだろう。
61 ヒエログリフや歴史的ないろいろなインド=ヨーロッパ言語だけでなく、
62 テングワール文字、キアス文字、クリンゴン文字などの人工的な言語も選ばれている。
63 UCS は、これらの文字に加えて、TeX, PostScript, APL, MS\-DOS, MS\-Windows,
64 Macintosh, OCR フォント、数多くのワードプロセッサーや
65 出版システム、などが提供する
66 図形記号・印字記号・数学記号・科学記号などの多くを含むようになった。
67
68 UCS 規格 (ISO 10646) は \fI31ビットの文字集合アーキテクチャー\fP を記述しており、
69 128 個の 24 ビット \fI群 (group)\fP から構成されている。
70 各群は 256 個の 16 ビット \fI面 (plane)\fP に分割されており、
71 各文字は 256 個の 8 ビット \fI区 (row)\fP の 256 \fI点 (column)\fP の中に位置する。
72 この規格の Part 1 (\fBISO 10646\-1\fP) では、
73 最初の 65534 個のコード位置 (0x0000 〜 0xfffd) を定義している。
74 これは第 0 群の第 0 面である \fI基本多言語面 (Basic Multilingual Plane (BMP))\fP を構成する。
75 この規格の Part 2 (\fBISO 10646\-2\fP) では、第 0 群の BMP の外部である
76 0x10000 〜 0x10ffff の範囲にある \fI補助面 (supplementary planes)\fP に文字を追加した。
77 この規格では 0x10ffff を越えた位置に文字を追加する予定はないので、
78 予想できる将来においては、
79 全コード空間のうちグループ 0 の一部分は実際には使われることはない。
80 BMP には他の文字集合で一般に使われる全ての文字が含まれている。
81 ISO 10646\-2 で追加された補助面は、
82 特定の科学分野・辞書出版・印刷産業・高次プロトコル・
83 何かのファンの間などで使われる特殊な文字だけをカバーする。
84 .PP
85 UCS 文字を 2 バイトのワードで表現するのが \fBUCS\-2\fP 形式である (BMP 文字のみ)。
86 また、\fBUCS\-4\fP では文字を 4 バイトのワードで表現する。
87 さらに、ASCII を処理するソフトウェアへの下位互換のために
88 \fBUTF\-8\fP エンコード形式がある。
89 また、0x10ffff までの非 BMP 文字を扱う UCS\-2 対応ソフトウェアとの互換のために
90 \fBUTF\-16\fP エンコード形式がある。
91 .PP
92 UCS 文字集合の 0x0000 から 0x007f は、古典的な \fBUS\-ASCII\fP 文字集合の文字と同じである。
93 また 0x0000 から 0x00ff の範囲では、\fBISO 8859\-1 Latin\-1\fP 文字集合の文字と同じである。
94 .SS "合成文字 (Combining characters)"
95 \fBUCS\fP のいくつかのコード・ポイントは
96 \fI合成文字 (combining characters)\fP
97 に割り当てられている。
98 これらはタイプライターの移動しないアクセント・キーに似ている。
99 合成文字は直前の文字にアクセントのみを加える。
100 最も重要なアクセント付きの文字はそれ自身のコードを UCS に持っている。
101 一方で合成文字機構は全ての文字にアクセントや発音区別符号を加えることができる。
102 合成文字は常にそれが修正する文字に続く。
103 例えばドイツ語の文字 A ウムラウト ("Latin capital letter A with diaeresis") は
104 UCS に前もって準備されたコード 0x00c4 でも、
105 通常の A "Latin capital letter A" に
106 "combining diaeresis (合成分音記号)" を続けた組合せ
107 (0x0041 0x0308) のどちらでも表現することができる。
108 .PP
109 合成文字は、タイ文字や数学植字のエンコード・
110 国際音声字母を使うユーザーなどには必須である。
111 .SS 実装レベル
112 全てのシステムに合成文字のような進んだサポートを期待しているわけではない。
113 ISO 10646\-1 は以下の三段階の UCS の \fI実装レベル\fP を指定している。
114 .TP  0.9i
115 Level 1
116 合成文字と \fBハングル・ジャモ文字\fP (いろいろな韓国・朝鮮文字の符号化。
117 この符号化では、ハングル音節のグリフが
118 3 つまたは 2 つの母音・子音コードの組み合わせで符号化される) はサポートしない。
119 .TP 
120 Level 2
121 Level 1 と同様だが、合成文字を必須とする言語のための文字
122 (例えば、タイ文字・ラオス文字・ヘブライ文字・アラビア文字・
123 デーヴァナーガリー文字・マレヤーラム文字) は使える。
124 .TP 
125 Level 3
126 全ての \fBUCS\fP 文字をサポートする。
127 .PP
128 \fBユニコード・コンソーシアム (Unicode Consortium)\fP から発行された \fBUnicode 3.0 Standard\fP
129 は、ISO 10646\-1:2000 に記述された \fBUCS Basic Multilingual Plane\fP
130 の level 3 実装と全く同じである。
131 \fBUnicode 3.1\fP では ISO 10646\-2 の補助面が追加されている。
132 Unicode Consortium から発行される Unicode 規格と技術レポートにより、
133 いろいろな文字の意味と推奨される使用法についての更なる情報が得られる。
134 これらの規格書や技術レポートで、Unicode 文字列を
135 編集・並べ替え・比較・正規化・変換・表示するための
136 ガイドラインとアルゴリズムが分かる。
137 .SS "Linux における Unicode"
138 GNU/Linux では、C 言語の型 \fBwchar_t\fP は符号付き 32 ビット整数型である。
139 その値は C ライブラリにより (すべてのロケールにおいて) 常に
140 \fBUCS\fP コードの値として解釈される。
141 これを GNU C ライブラリがアプリケーションに知らせるための規約として、
142 定数 \fB__STDC_ISO_10646__\fP を定義する。
143 これは ISO C99 規格で指定されている。
144
145 ASCII 互換の \fBUTF\-8\fP マルチバイトエンコードでは、入出力ストリーム・端末通信・
146 プレーンテキストファイル・ファイル名・環境変数において、
147 UCS/Unicode を ASCII のように使うことができる。
148 UTF\-8 を文字エンコードとして使うことを
149 全てのアプリケーションに知らせるためには、
150 ("LANG=en_GB.UTF\-8" のように) 環境変数を使って適切な
151 \fIロケール (locale)\fP を選択しなければならない。
152 .PP
153 \fBnl_langinfo(CODESET)\fP 関数は選択されたエンコードの名前を返す。
154 内部的な \fIwchar_t\fP 文字や文字列をシステム文字列エンコードに変換 (逆変換) するのに使われる
155 \fBwctomb\fP(3) や \fBmbsrtowcs\fP(3)、さらには \fBwcwidth\fP(3) といったライブラリ関数は、
156 文字出力でどれだけカーソルが進んだか (0\(en2) を返す。
157 .PP
158 一般的に言うと、Linux では現在のところ BMP の level 1 実装のみを使うべきである。
159 ある言語の文字 (とくにタイ文字) では、ベース文字当たり 2 つまでの合成文字を使うことが
160 UTF\-8 端末エミュレータと ISO 10646 フォント (level 2) でサポートされている。
161 しかし一般的に言えば、もし可能ならばあらかじめ合成した文字を使うべきである
162 (Unicode では、これを \fBNormalization Form C (合成文字の正規化形式)\fP という)。
163 .SS プライベート・エリア
164 \fBBMP\fP の 0xe000 〜 0xf8ff の範囲は、規格ではいかなる文字も割り当てず、
165 私的な使用のために予約されている。
166 Linux コミュニティでは、
167 このプライベート・エリアをさらに細かく分割して使用する。
168 0xe000 〜 0xefff の範囲はエンド・ユーザーが個々に使用することができる。
169 0xf000 〜 0xf8ff の範囲は Linux Zone で
170 全ての Linux ユーザーで共通に使用する。
171 Linux Zone への文字割り当ての登録は、
172 現在 H. Peter Anvin <Peter.Anvin@linux.org> によって管理されている。
173 .SS 文献
174 .TP  0.2i
175 *
176 Information technology \(em Universal Multiple\-Octet Coded Character Set
177 (UCS) \(em Part 1: Architecture and Basic Multilingual Plane.  International
178 Standard ISO/IEC 10646\-1, International Organization for Standardization,
179 Geneva, 2000.
180
181 これは \fBUCS\fP の公式な仕様である。
182 .UR http://www.iso.ch/
183 .UE
184 から注文できる CD\-ROM で PDF
185 ファイルとして入手できる。
186 .TP 
187 *
188 The Unicode Standard, Version 3.0.  The Unicode Consortium, Addison\-Wesley,
189 Reading, MA, 2000, ISBN 0\-201\-61633\-5.
190 .TP 
191 *
192 S. Harbison, G. Steele. C: A Reference Manual. Fourth edition, Prentice
193 Hall, Englewood Cliffs, 1995, ISBN 0\-13\-326224\-3.
194
195 C プログラム言語についてのとても良い参考書である。
196 第四版では、ワイド文字やマルチバイト文字エンコードを扱うための
197 多くの新しい C ライブラリ関数が
198 加えられた ISO C90 規格の 1994 Amendment 1 をカバーしている。
199 しかし、ワイド文字やマルチバイト文字のサポートを
200 更に改善した ISO C99 は、まだカバーしていない。
201 .TP 
202 *
203 Unicode 技術レポート。
204 .RS
205 .UR http://www.unicode.org\:/unicode\:/reports/
206 .UE
207 .RE
208 .TP 
209 *
210 Markus Kuhn: UNIX/Linux のための UTF\-8 と Unicode の FAQ。
211 .RS
212 .UR http://www.cl.cam.ac.uk\:/~mgk25\:/unicode.html
213 .UE
214
215 \fIlinux\-utf8\fP メーリングリストを購読するための情報がある。
216 Linux で Unicode を使う場合のアドバイスを探すのに一番良い場所である。
217 .RE
218 .TP 
219 *
220 Bruno Haible: Unicode HOWTO.
221 .RS
222 .UR ftp://ftp.ilog.fr\:/pub\:/Users\:/haible\:/utf8\:/Unicode\-HOWTO.html
223 .UE
224 .RE
225 .SH バグ
226 .\" .SH AUTHOR
227 .\" Markus Kuhn <mgk25@cl.cam.ac.uk>
228 このマニュアルページを最後に改訂した時点で、
229 GNU C ライブラリの \fBUTF\-8\fP サポートは完成している。
230 XFree86 によるサポートは進行中である。
231 \fBUTF\-8\fP ロケールで快適に使えるアプリケーション
232 (多くの有名なエディタ) の作成は、まだ進行中である。
233 Linux での \fBUCS\fP サポートでは通常 CJK の 2 ワイド文字が提供される。
234 単純な重ね打ちによる合成文字が提供される場合もある。
235 しかし、右から左へ書く文字やヘブライ文字・アラビア文字・インド語系文字などの
236 合字の置き換えを必要とする文字はサポートされていない。
237 現在、これらの文字は洗練されたテキスト描画エンジンを備えた
238 GUI アプリケーション (HTML ビューア・ワードプロセッサ) でのみ
239 サポートされている。
240 .SH 関連項目
241 \fBsetlocale\fP(3), \fBcharsets\fP(7), \fButf\-8\fP(7)
242 .SH この文書について
243 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
244 である。プロジェクトの説明とバグ報告に関する情報は
245 http://www.kernel.org/doc/man\-pages/ に書かれている。