.\" 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