OSDN Git Service

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