編輯推薦
以上權威人士和其他軟體領域的專家都意識到,Unicode已經成為一個支撐與日俱增的全球化市場必不可少的工具。作為一個表示全世界所有字母的標準的綜合系統,Unicode是現代編程技術(Windows、XML、Python、PERL、Mac OS和Linux)和當今操作中每種搜尋引擎及瀏覽器的基礎。
Unicode最新版的官方參考手冊已經在最新的Unicode標準修訂版文檔中有了幾百頁的更新。其中包括對文本、圖表、定義和一致性語句的修訂,並為常見問題提供了清晰和正確的答案。《Unicode 5.0標準》首次包含了Unicode標準附屬檔案,附屬檔案中說明了一些諸如文本標準化和標識符分解等重要的處理過程。
這些改進非常重要,所以Unicode標準5.0版本是微軟公司最新的Windows 7作業系統的基礎,同時該版本也是Google、Yahoo和ICU升級方案的一部分。
Unicode標準5.0版本與以前版本的不同之處:
Unicode安全機制的穩固基礎
Unicode校勘算法和通用區域資料庫(CLDP)的屬性數據
改進的UTF-8 Unicode編碼模式
嚴密穩定的大小寫重疊和標識符間更好的互用性及後台兼容性——能夠利用新的方法最佳化代碼
更可靠的文本處理系統框架——涵蓋合成字元、Unicode字元串、斷行和分段等
內容簡介
在計算機發展的初期,由於各個計算機系統都是相對獨立誕生的,因此曾出現過多達數百種編碼系統,但每種編碼系統都不能包含全部的字元,並且系統相互之間並不兼容,給信息交換帶來了麻煩和安全隱患。於是,很多國家都制定了計算機信息交換用的字元編碼集,如美國的擴展ASCII碼、中國的GB2312-80、日本的JIS等,作為相應國家信息處理的基礎,起著統一編碼的重要作用。
但隨著Web的廣泛套用,尤其是近年來支持多語言(如中、英、日)的套用已成為大勢所趨。這些國家標準字元集編碼也出現了範圍重疊、相互間的信息交換比較困難的情況,造成軟體各個本地化版本的維護成本較高,基於不同環境的程式編寫越來越複雜。
Unicode有效解決了這些問題,它幾乎包括所有的(超過十萬個)語言字元。基於Unicode編碼標準的信息和程式能夠在不同平台和環境下高效地進行交換和運行,極大簡化了套用的開發過程。為此,Windows早在90年代就已經將Unicode作為自身的編碼標準,XML和Python、PERL、Mac OS和Linux等程式語言也都提供了對Unicode編碼的支持。
目前,國內關於Unicode的書籍非常少,為了滿足讀者的迫切需求,清華大學出版社引進了這本由致力於Unicode編碼系統研究、推廣和套用的國際權威組織——The Unicode Consortium(Unicode協會)組織編寫的經典圖書。為了保持原書的系統性和規範性,儘可能為讀者提供標準的第一手資料,我們對該書的中文版譯本做了一些調整,主要體現在以下幾個方面:
● 第1~6章是完整的中文譯本。前5章主要是關於Unicode標準的基本概念、原理、一致性、字元屬性和實現方法等內容,第6章主要是世界範圍內使用的書寫系統和標點的相關介紹。
● 第7~16章採用英文影印的方式,最大化地保留了原書的內容,但為了方便讀者查找相關內容,我們加了中文導讀信息。這部分主要是關於各種語言文字及符號的基本介紹,如拉丁字元、中東字元、南亞字元、東亞字元、新增的現代字元、各種符號、特殊區域和格式字元等基本信息。
● 第17章是完整的Unicode編碼表,這部分內容按照不同字元塊的分區,以表格的形式體現出來,以便於讀者查閱。
● 第18章是漢字偏旁-筆畫索引,因這部分內容是我們日常使用最廣泛的信息,故完全採用中文譯本。
● 附錄A~F、術語表、參考文獻、Unicode名稱索引以及Unicode標準附屬檔案全部採用英文影印方式,以便於讀者查閱最原始的資料、文獻和技術標準。
媒體評論
多年來,Unicode標準的複製版本已經成為我的個人藏書中最重要和使用頻率最高的一本書。
——高德納,美國著名計算機科學家,圖靈獎獲得者,被譽為現代計算機科學的鼻祖
十幾年來,Unicode已經成為許多微軟產品和技術的基礎。Unicode標準5.0版本將給客戶提供更多新的功能。
——比爾·蓋茨,微軟公司創始人,前任董事長兼執行長
W3C使網路上的文本真正全球化,而W3C遵從的正是Unicode標準。
——蒂姆·伯納斯-李,Web發明者和全球資訊網聯盟(W3C)主席
沒有Unicode,Java就不能稱之為Java,網際網路也不能很好地連線全世界的人們。
——詹姆斯·戈士林,Java之父,SUN公司全球副總裁
目錄
第1章 緒論 3
1.1 覆蓋範圍 4
1.1.1 Unicode標準覆蓋面 5
1.1.2 新字元 5
1.2 設計目標 5
1.3 文本處理 6
第2章 總結構 11
2.1 前後結構關係 11
2.1.1 基本文本處理過程 11
2.1.2 文本要素、字元和文本處理過程 12
2.1.3 文本處理和編碼 13
2.2 Unicode 設計原則 14
2.2.1 通用性 14
2.2.2 有效性 15
2.2.3 字元,而非字形 15
2.2.4 語義 17
2.2.5 純文本 17
2.2.6 邏輯順序 18
2.2.7 一致性 19
2.2.8 動態合成 20
2.2.9 穩定性 21
2.2.10 可轉換性 21
2.3 兼容性字元 21
2.3.1 兼容性變數 21
2.3.2 兼容性可分解字元 22
2.3.3 映射兼容性字元 22
2.4 代碼點和字元 23
2.5 編碼格式 25
2.5.1 UTF-32 27
2.5.2 UTF-16 28
2.5.3 UTF-8 28
2.5.4 UTF-32、UTF-16和UTF-8優點的比較 29
2.6 編碼方案 30
2.7 Unicode 字元串 32
2.8 Unicode分配 33
2.8.1 平面 33
2.8.2 分配區域和字元代碼塊 34
2.8.3 代碼點的分配 35
2.9 字元分配 35
2.9.1 Plane 0(BMP) 36
2.9.2 Plane 1 38
2.9.3 Plane 2 39
2.9.4 其他平面 39
2.10 書寫方向 39
2.11 合成字元 40
2.11.1 基本字元序列和讀音符號 41
2.11.2 多重合成字元 42
2.11.3 連字式多重基本字元 44
2.11.4 隔離中的非間隔標記 44
2.11.5 “字元”和字形串 44
2.12 等價序列和規範化 45
2.13 特殊字元和非字元 48
2.13.1 特殊非字元代碼點 48
2.13.2 位元組順序標記(BOM) 48
2.13.3 布局和格式控制字元 48
2.13.4 替換字元 49
2.13.5 控制碼 49
2.14 Unicode標準的一致性 49
2.14.1 一致性實現的特徵 49
2.14.2 不可接受的行為 49
2.14.3 可接受的行為 50
2.14.4 支持的子集 50
第3章 一致性 53
3.1 Unicode標準的版本 53
3.1.1 穩定性 54
3.1.2 版本編號 54
3.1.3 勘誤表 55
3.1.4 Unicode標準引用 55
3.1.5 版本引用的精確性 55
3.1.6 Unicode字元屬性的引用 56
3.1.7 Unicode算法的引用 56
3.2 一致性要求 56
3.2.1 抽象字元的未指派代碼點 57
3.2.2 說明 57
3.2.3 修改 58
3.2.4 字元編碼格式 58
3.2.5 字元編碼方案 59
3.2.6 雙向文本 59
3.2.7 標準化格式 59
3.2.8 標準引用 59
3.2.9 Unicode算法 60
3.2.10 默認大小寫算法 60
3.2.11 標準附屬檔案 60
3.3 語義 61
3.3.1 定義 61
3.3.2 字元特性及其語義 61
3.4 字元與編碼 62
3.5 屬性 64
3.5.1 屬性的類型 65
3.5.2 屬性值 65
3.5.3 標準化屬性與信息化屬性 67
3.5.4 上下文依賴屬性 69
3.5.5 屬性的穩定性 69
3.5.6 簡單屬性與衍生屬性 70
3.5.7 屬性別名 70
3.5.8 私人使用 71
3.6 合成 71
3.7 分解 73
3.7.1 兼容分解 74
3.7.2 規範分解 74
3.8 替代 75
3.9 Unicode編碼格式 76
3.9.1 UTF-32 78
3.9.2 UTF-16 79
3.9.3 UTF-8 79
3.9.4 編碼格式轉換 81
3.10 Unicode編碼方案 81
3.11 規範排序行為 84
3.11.1 合成標記的套用 85
3.11.2 合成類 88
3.11.3 規範排序 89
3.12 連線Jamo行為 90
3.12.1 定義 90
3.12.2 確定Hangul音節界限 91
3.12.3 標準韓語音節 92
3.12.4 Hangul音節構成 93
3.12.5 Hangul音節分解 94
3.12.6 Hangul音節名的生成 95
3.13 默認大小寫算法 95
3.13.1 定義 95
3.13.2 默認大小寫轉換 96
3.13.3 默認大小寫探測 97
3.13.4 默認無大小寫匹配 98
第4章 字元屬性 101
4.1 Unicode字元資料庫 102
4.2 大小寫形式 103
4.3 合成類 104
4.4 定向 108
4.5 一般分類 108
4.6 數值 110
4.7 Bidi鏡像 112
4.8 名稱 112
4.9 Unicode 1.0中的名稱 114
4.10 字母、字母文字和表意字元 114
4.11 文本邊界屬性 115
4.12 特殊屬性的字元 115
第5章 實現原則 121
5.1 與其他標準的編碼轉換 121
5.1.1 討論 121
5.1.2 多級表 122
5.2 程式語言和數據類型 123
5.3 不可知字元和遺漏字元 124
5.3.1 保留字元代碼和專用字元代碼 124
5.3.2 可解釋但不可引用的字元 125
5.3.3 默認屬性值 125
5.3.4 默認可忽略代碼點 125
5.3.5 與低級系統的互動 125
5.4 UTF-16中替代對的處理 125
5.5 數字的處理 127
5.6 標準化 128
5.7 壓縮 129
5.8 換行原則 129
5.8.1 定義 130
5.8.2 行分隔設定和段落分隔設定 131
5.8.3 建議 131
5.9 正則表達式 133
5.10 純文本中的語言信息 133
5.10.1 使用語言標籤的條件 133
5.10.2 語言標籤和漢字的統一 134
5.11 編輯和選擇 134
5.12 非間隔標記的處理策略 136
5.12.1 鍵盤輸入 137
5.12.2 字元的截短 137
5.13 非間隔標記的顯示 138
5.13.1 規範等價 141
5.13.2 定位方法 142
5.14 定位文本元素邊界 144
5.15 標識符 144
5.16 排序與搜尋 144
5.16.1 結合文化背景的排序和搜尋 144
5.16.2 對語言不敏感的排序(Language-Insensitive Sorting) 145
5.16.3 搜尋 145
5.16.4 次線性搜尋(Sublinear Searching) 146
5.17 二進制排序 146
5.17.1 UTF-16順序的UTF-8編碼 147
5.17.2 UTF-8順序的UTF-16編碼 147
5.18 大小寫映射 148
5.18.1 標題樣式 149
5.18.2 大小寫映射的複雜性 149
5.18.3 可逆性 151
5.18.4 無大小寫區別的匹配 151
5.18.5 標準化 153
5.19 Unicode的安全性 154
5.20 默認的可忽略代碼點 156
第6章 書寫系統與標點符號 161
6.1 書寫系統 161
6.2 一般標點符號 164
6.2.1 標點符號塊 166
6.2.2 格式控制符 166
6.2.3 間隔字元 166
6.2.4 破折號與連字元 168
6.2.5 成對的標點符號 169
6.2.6 引號的使用方法 170
6.2.7 撇號 172
6.2.8 其他標點符號 172
6.2.9 古代的標點符號和編輯標記 175
6.2.10 印度標點符號 177
6.2.11 CJK標點符號 177
6.2.12 未知的或難以獲得的表意文字 178
6.2.13 CJK兼容格式 179
第7章 歐洲字元 183
7.1 拉丁文 184
7.2 希臘文 195
7.3 科普特文 201
7.4 西里爾文 203
7.5 格拉哥里文 204
7.6 亞美尼亞文 205
7.7 喬治亞文 207
7.8 修飾字母 208
7.9 合成標記 210
第8章 中東字元 221
8.1 希伯來文 222
8.2 阿拉伯文 227
8.3 敘利亞文 241
8.4 馬爾地夫文 249
第9章 南亞字元-I 253
9.1 天城體 254
9.2 孟加拉文 270
9.3 果魯穆奇文 275
9.4 古吉拉特文 279
9.5 奧里亞文 280
9.6 泰米爾文 282
9.7 泰盧固文 288
9.8 埃納德文 289
9.9 馬拉雅拉姆文 292
第10章 南亞字元-Ⅱ 299
10.1 僧伽羅文 299
10.2 藏文 301
10.3 八思巴字 311
10.4 林布文 318
10.5 Syloti Nagri 321
10.6 迦婁士悌文 322
第11章 東南亞字元 331
11.1 泰文 331
11.2 寮國文 334
11.3 緬甸文 337
11.4 高棉文 340
11.5 德宏傣文 351
11.6 新傣文 352
11.7 菲律賓文 353
11.8 布吉文 355
11.9 巴厘文 357
第12章 東亞字元 365
12.1 漢字 366
12.2 象形描述字元 385
12.3 注音符號 389
12.4 平假名和片假名 391
12.5 半角和全形字元 392
12.6 韓文 393
12.7 彝文 396
第13章 附加的現代字元 403
13.1 衣索比亞文 403
13.2 蒙古文 406
13.3 奧斯馬尼亞文 415
13.4 提非納文 415
13.5 N'Ko字母 416
13.6 切羅基文 420
13.7 加拿大土著語 421
13.8 德塞雷特大學音標 422
13.9 蕭伯納速記符號 424
第14章 古代字元 429
14.1 歐甘文 430
14.2 古義大利文 431
14.3 如尼文 433
14.4 哥特文 435
14.5 線形文字B 436
14.6 賽普勒斯音節文字 437
14.7 腓尼基文 438
14.8 烏加里特楔形文字 440
14.9 古波斯文 441
14.10 蘇美爾-阿卡德楔形文字 441
第15章 符號 447
15.1 貨幣符號 448
15.2 類似字母符號 450
15.3 數字格式 456
15.4 數學符號 460
15.5 不可見數學運算符 465
15.6 技術符號 466
15.7 幾何符號 470
15.8 雜類符號和裝飾符號 472
15.9 帶括弧的字母數字和矩形符號 475
15.10 盲文符號 477
15.11 西方音樂符號 478
15.12 拜占庭音樂符號 483
15.13 古希臘音樂符號 484
第16章 特殊區域和格式字元 489
16.1 控制代碼 490
16.2 布局控制符 492
16.3 不推薦使用的格式字元 501
16.4 字型變換選擇器 503
16.5 專用字元 504
16.6 替代區域 506
16.7 非字元區域 507
16.8 特殊字元 508
16.9 標籤字元 512
第17章 編碼表 521
17.1 字元名稱列表 521
17.2 CJK統一表意文字 527
17.3 韓語音節 528
第18章 漢字偏旁-筆畫索引 981
附錄A 符號規定 1035
附錄B Unicode出版物和資源 1041
附錄C 與ISO/IEC 10646的關係 1049
附錄D Unicode標準版本的發展歷程 1057
附錄E 統一漢字字元集的歷史 1073
附錄F Unicode編碼穩定性策略 1077
術語表 1083
參考文獻 1111
Unicode名稱索引 1137
Unicode標準附屬檔案#9 1189
Unicode標準附屬檔案#11 1213
Unicode標準附屬檔案#14 1221
Unicode標準附屬檔案#15 1271
Unicode標準附屬檔案#24 1303
Unicode標準附屬檔案#29 1311
Unicode標準附屬檔案#31 1331
Unicode標準附屬檔案#34 1343
Unicode標準附屬檔案#41 1349
名家書評 1357