.\" Copyright (C) Markus Kuhn, 1995 .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, .\" USA. .\" .\" 1995-11-26 Markus Kuhn .\" First version written .\" 中文版版權所有 mapping, Laser www.linuxforum.net 2000 .TH UNICODE 7 "1995-12-27" "Linux" "Linux Programmer's Manual" .SH NAME Unicode \- 16 位統一超級字符集 .SH 描述 (DESCRIPTION) 國際標準 .B ISO 10646 定義了 .BR "通用字符集 (Universal Character Set, UCS)". .B UCS 包含所有別的字符集標準裡的字元,並且保證了 .BR "互換相容性 (round-trip compatibility)", 也就是說,當一個字串在 .B UCS 和任何別的字符集之間轉換時, 轉換表可以保證不會有資訊丟失現象發生. .B UCS 包含了表示幾乎所有已知的語言所必需的字元.該字符集既包 括那些使用擴充套件拉丁語的語言,也包括下面的這些語言: Greek, Cyrillic, Hebrew,Arabic, Armenian, Gregorian, Japanese, Chinese, Hiragana, Katakana, Korean, Hangul, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, alayam, Thai, Lao, Bopomofo,等等.而另外的語言,例如 Tibetian, Khmer, Runic, Ethiopian, Hieroglyphics, 各種 Indo-European 語言, 還有許多其他的語言, 正在被加入其 中.1993 年釋出該標準的時候, 還不清楚怎樣才能對後面加入的這些 語言中的大部分作更好的編碼. 另外, 這些語言所需的字元, 以及由 TeX, PostScript, MS-DOS, Macintosh, Videotext, OCR, 還有很 多字處理系統所提供的大量的圖形, 印刷體, 數學和科學符號, 都已 被包括進來, 還包括了一些特別編碼以保證和所有其它已存在字符集 標準的可逆轉換相容性. .B UCS 標準 (ISO 10646) 描述了一個 31 位字符集的體系, 不過, 目前 只使用了前面 65534 個編碼位置 (0x0000-0xfffd, 它們被稱為 .BR "基本多語言塊 (Basic Multilingual Plane,BMP))", 分配給了字元, 而且我們 估計只有那些很古怪的字元(比如. Hieroglyphics)為了專門 的科學目的, 才會在將來的某個時候, 需要 16 位的 BMP 之外的部分. 從 0x0000 到 0x007f 之間的 .B UCS 字元和經典 .B US-ASCII 字符集是一樣的, 而從 0x0000 到 0x00ff 之間的字元等於 .B ISO 8859-1 Latin-1 字符集. .SH 組合字元 (COMBINING CHARACTERS) 一些 .B UCS 編碼被分配給了 .BR "組合字元(combining characters)". 這樣的情形有點類似於打字機上的重音鍵. 一個組合字元只是 給前面的字元新增一個重音. 在 .BR UCS 裡最重要的重音字元都有他們自己的編碼, 不過, 組合字元機制允許給任一字元新增重音和其他的可識別記號. 組合字元總是跟在那些他們所修飾的字元後面. 例如,德語符號 Umlaut-A (帶分音符的大寫拉丁字母 A)既可以表示為 .B UCS 編碼 0x00c4, 也可以 用一個正常的"大寫拉丁字母 A"後面跟一個"組合分音符號": 0x0041 0x0308 來表示. .SH 實現級別 (IMPLEMENTATION LEVELS) 由於不是所有系統都支援象組合字元這樣的高階機制, ISO 10646 指明瞭 .BR UCS 的三種實現級別: .TP 0.9i 級別 1 (Level 1) 不支援組合字元和 Hangul Jamo 字元(朝鮮語的一種更復 雜的專用的編碼, Hangul 音節編碼成兩或三個亞字元). .TP 級別 2 (Level 2) 類似於級別1, 卻在一些語言裡面也支援一些組合字元. (比如. Hebrew, Arabic, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugo, Kannada, Malayalam, Thai 和 Lao). .TP 級別 3 (Level 3) 支援所有 .B UCS 字元. .PP Unicode 協會發布的 Unicode 1.1 標準和 ISO 10646 所描述的 那樣, 在第 3 執行級別只包括了 .B UCS (基本多語言塊 Basic Multilingual Plane). Unicode 1.1 還為一些 ISO 10646 的字元定義加 入了一些語義定義. .SH LINUX 下的 UNICODE (UNICODE UNDER LINUX) 在 Linux 下, 為了降低組合字元的實現複雜性, 目前只包括了執 行級別 1 下的 .B BMP. 更高的執行級別更適合於專門的字處理格式, 而不是一個普通的系統字符集. 在 linux 下 C 的型別 .B wchar_t 是一個 有符號位的 32 位整型並且其值解釋為 .B UCS4 編碼. 本地化設定指明系統字元編碼是使用諸如 .B UTF-8 還是 .BR "ISO 8859-1" 這樣的編碼. 象庫函式 .BR wctomb, .BR mbtowc, 或者 .B wprintf 就可以用於內部 .B wchar_t 字元及字串與系統字元編碼之間做轉換. .SH 私有區 (PRIVATE AREA) 在 .BR BMP 裡, 0xe000 到 0xf8ff 的範圍被標準保留做私用因而永遠不會 被分配給任何字元. 對於 Linux 社群, 該私有區被再細分為可以被任何終端使用者 獨立使用的 0xe000 到 0xefff 的範圍, 以及從 0xf000 到 0xf8ff 給所有 linux 使用者所共用的 linux 區.H. Peter Anvin(, Yggdrasil Computing,Inc) 現在維護登記分配到 linux 區的字元. 該區包括一些 Unicode 中缺少的 DEC VT100 的圖形字元, 這使控制檯 的字型緩衝區可以直接獲得這些字元, 該區還包括一些象 Klingon 這樣的古老語言所使用的字元. .SH 文獻 (LITERATURE) .TP 0.2i * Information technology \- Universal Multiple-Octet Coded Character Set (UCS) \- Part 1: Architecture and Basic Multilingual Plane. International Standard ISO 10646-1, International Organization for Standardization, Geneva, 1993. 這是 .BR UCS 的正式規範, 非常正式, 也很厚, 還非常貴. 如果要定 購資訊, 去看看 www.iso.ch. .TP * The Unicode Standard \- Worldwide Character Encoding Version 1.0. The Unicode Consortium, Addison-Wesley, Reading, MA, 1991. Unicode 已經有 1.1.4 版可用,與 1.0 版的差別可以在 ftp.unicode.org 找到. Unicode 2.0 也將在 1996 年出版一本書. .TP * S. Harbison, G. Steele. C \- A Reference Manual. Fourth edition, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3. 一本很好的 C 語言程式設計參考書. 現在的第四版包含了 1994 年對標準 ISO C 的第一次修正 (ISO/IEC 9899:1990), 添加了大量 處理多種字符集的新的 C 庫函式. .SH 缺憾 (BUGS) 在寫這個手冊頁的時候,linux 對 .B UCS 的 C 語言庫支援遠未完成. .SH 作者 (AUTHOR) Markus Kuhn .SH 又見(SEE ALSO) .B utf-8(7), .B http://www.linuxforum.net/books/UTF-8-Unicode.html .SH "[中文版維護人]" .B mapping .SH "[中文版最新更新]" .BR 2000/11/06 .SH "《中國linux論壇man手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR