什麼是 Unicode:定義、UTF 和主要用途
資訊科技數位 » 用品 » 什麼是 Unicode:完整指南、用途和編碼
Unicode 為每個字元指派一個唯一的代碼點,並將其內容與 ISO/IEC 10646 同步。
UTF-8、UTF-16 和 UTF-32 對相同的字元進行編碼並允許無損轉換。
規範化、Bidi 和 UCD 屬性可確保一致的比較、排序和渲染。
採用 Unicode(最好在網路上採用 UTF-8)可防止損壞並促進國際化。
Unicode 是電腦處理文字時所使用的通用語言。:為幾乎任何書寫系統中的每個字元和符號分配一個唯一的編號,以便它們可以跨平台和國家無縫儲存、處理和共享。
這個標準的出現是為了克服舊字符集的局限性 (ASCII 集、代碼頁、EBCDIC 等),這些標準曾經很短或彼此不相容,如今它與 ISO/IEC 10646 同步,維護演算法(例如雙向演算法)並定義屬性和規範化規則,以便一切都協調一致地運行。
什麼是 Unicode 以及為什麼它如此重要?
Unicode 是一種通用且不斷發展的字元編碼標準。 它用名稱、程式碼點和一組屬性(腳本、類別、方向性、大寫/小寫等)描述每個字元。 Unicode 聯盟內的 Unicode 技術委員會 (UTC) 使其與 ISO/IEC 10646 標準保持同步。.
其目標是普遍性、統一性和獨特性:一個廣泛的曲目,允許以清晰和可重複的規則進行多語言文本的明確交換。 得益於此,現代科技(作業系統、瀏覽器、XML、Java、資料庫)可以在同一文件中混合拉丁文字、阿拉伯文字、CJK 表意文字、表情符號、技術或音樂符號。.
字元、字形和代碼點
在 Unicode 中,字元是資訊的抽象單位,代碼點是其數字標識符。。 一 字形是視覺形式(您在螢幕上看到的),取決於字體一個字元可以有多個字形,有時一個字形代表多個字元。
代碼點的通常表示法是 十六進制的 U+XXXX分析資料的說明性範例:小寫字母「l」為 U+006C,預組合小寫字母「ü」為 U+00FC,「é」為 U+00E9,希臘文 beta:大寫字母為 U+0392,小寫字母為 U+03B2(在某些文字中,「β」引用為 U+0392)。
Unicode 碼空間有 1.114.112 個可能的位置(最多 U+10FFFF),涵蓋並分類所有書寫系統和符號,每個版本包含數以萬計的有效且不斷增加的作業。
規劃、區域和街區
Unicode 將其空間劃分為 17 個平面,每個平面最多有 65.536 個代碼點。這種組織方式可以輕鬆地將相關腳本和符號分組,並快速找到您要查找的內容。
最相關的計劃基本多文種計劃(BMP,計劃 0)幾乎包含所有現代文字和許多符號;補充多文種計劃(SMP,計劃 1)包含歷史文字和技術符號(例如音樂和數學);補充表意文字計劃(SIP,計劃 2)擴展了 CJK 表意文字;計劃 14(SSP)包括特殊標籤;計劃 15 和 16 供私人使用。
區塊和區域:這些規劃圖非正式地細分為多個區域,正式地劃分為多個連續的區塊。這些區塊用於製表和記錄字符,儘管它們並不總是與有意義的語言分組相對應。
戴爾桌上型電腦:最暢銷的型號CJK 表意文字和 Unihan 項目
東亞(漢)表意文字在 Unicode 中統一,但各地區存在風格差異,但指的是相同的抽象性質。它由表意文字報告人小組 (IRG) 管理,該小組由來自中國、日本、韓國、越南、香港、澳門、新加坡、美國等地的 ISO/IEC JTC1/SC2/WG2 代表組成。
Unihan資料庫 它收集了管理不同語言和歷史或公司標準中的表意文字所必需的輔助資訊(讀法、含義、等價性)。
主要的 CJK 區塊和擴展:
中日韓統一表意文字(BMP,U+4E00–U+9FFF):20.992個常用字元。
擴展 A(BMP,U+3400-U+4DBF):6.592 個較不常見的表意文字。
B–H延伸:在 SMP/SIP/TIP中,它們加起來有數萬個(B:U+20000–U+2A6DF,42.720;C:U+2A700–U+2B73F,4.154;D:U+2B740–U+2B81 F,222;E:U+2B820–U+2CEAF,5.762;F:U+2CEB0–U+2EBEF,7.473;G:U+30000–U+3134F,4.939;
其他相關 CJK 區塊:康熙部首(U+2F00–U+2FDF)、CJK符號和標點符號(U+3000–U+303F)、相容性和相容格式、相容性表意文字補充等。
Unicode 預測表意文字的合併不會有絕對的終結 並考慮採用表意描述序列等機制,透過將非編碼符號分解為現有組件來表示非編碼符號(注意:在搜尋或排序等操作中沒有規範分解或保證)。
編碼形式:UTF-8、UTF-16 和 UTF-32
Unicode 定義了將代碼點轉換為儲存單元的轉換形式 (UTF)。 以便軟體能夠根據上下文有效地處理文字。
UTF-8的 它長度可變,面向字節,與 ASCII 中 U+0000–U+007F 範圍內的單字節字元相容。目前標準每個字元使用 1 到 4 個位元組;一些較早的文獻提到 1 到 6 個位元組,但現代 Unicode 使用 1 到 4 個位元組。它是網路上的主流格式。
UTF-16的 使用 16 位元單元
(每個字元一個或兩個代碼單元):大多數 BMP 字元適合放在一個單元中;補充字元使用 U+D800–U+DFFF 範圍內的代理對。
UTF-32的 它是固定長度的:每個字元 4 個位元組,簡單但耗費空間;當直接字元索引很重要且記憶體不是問題時很有用。
UTF-8 中的位元分佈
UTF-8 格式將代碼點位分佈在 1 至 4 個位元組的序列中。 具有可識別的標題,這避免了歧義並使得檢測字元邊界變得更容易。
Unicode 範圍
位元模式
字節
U+0000..U+007F
0xxxxxxx
1
U+0080..U+07FF
110yyyyy 10xxxxxx
2
U+0800..U+FFFF
1110zzzz 10yyyyyy 10xxxxxx
3
U+010000..U+10FFFF
11110uuu 10uuuzzzz 10yyyyyy 10xxxxxx
4
UTF-8 的一個主要優點是它避免了位元組順序問題(位元組順序) 並且能夠有效率地處理文字流,此外還向後相容於 ASCII。
編碼方案、位元組順序和 BOM
除了 UTF 形式之外,Unicode 還描述了序列化方案。 解決如何在具有不同位元組順序的系統之間傳輸位元組以及如何發送位元組順序等方面的訊號。
UTF-8的:位元組順序不適用。它可以攜帶 位元組順序標記 (BOM)作為提示,儘管默認情況下它不是必需的或建議的。
UTF-16的:BE/LE(大/小端)變體和可選的 BOM(如果缺失且協定未定義,則假定為大端)。
UTF-32的:具有類似規則的 BE/LE 變體;允許使用 BOM 作為訂單標記。
OCR:它是什麼、如何運作以及它的用途還有一些特定的變體 例如 UTF-16BE/UTF-16LE 和 UTF-32BE/UTF-32LE(按照慣例不含 BOM),以及其他歷史相容的編碼,例如 UTF-7 或 UTF-EBCDIC,以及 GB18030(UTF-8 的中文編碼,支援簡體對應和繁體中文)。
規範化、組合和等價性
許多字元可以表示為預複合字元或組合基礎+標記序列。修改內容的經典範例:預先組合的「Ä」為U+00C4,分解後的形式為「A」(U+0041)+分音符(U+0308)。越南語的「ỗ」可以表示為「o」(U+006F)+揚抑符(U+0302)+波浪符(U+0303)。
Unicode 定義了標準化形式和兩種等價類型:規範(相同的基本內容)和相容性(形式可能看起來相同但語義不同)。 規範化可確保可靠的字串比較並減少重複。.
雙向演算法和特殊字符
對於從右到左的文字,例如阿拉伯語或希伯來語,Unicode 採用了雙向演算法。 (Bidi)標準化並不斷發展(例如,6.3 中的修訂),以便混合的拉丁文和阿拉伯文文本能夠以正確的視覺順序呈現。
您應該知道的程式碼點類 取決於收到的材料:圖形字元(字母、符號、符號)、格式化字元(不可見但影響處理:U+2028 換行符、U+2029 段落符、U+00A0 硬空格)、為相容而繼承的控制代碼(範圍為 U+0000–U+001F、U+007F、U+0080-009F-800F 或U+D16–U+DFFF)和非字元(每個平面上的 U+FFFE、U+FFFF)。
Unicode、ISO/IEC 10646 和其他標準(ASCII、ANSI、代碼頁)
Unicode 與 ISO/IEC 10646(UCS)同步,並保留與先前標準的映射 (ASCII、ISO 8859-1、ANSI Z39.64、JIS X 0208、KS X 1001、GB 2312、GB 18030、HKSCS、CNS 11643 等),另外也為製造商保留了私有使用空間。
ASCII 與 Unicode: ASCII 是一組 7 位元、128 個字元。,足以應付基礎英語,但是 對於有變音符號、表意文字或表情符號的語言來說,功能不足. Unicode 涵蓋超過 140.000 個字符,並且還在不斷增加,採用 UTF 格式的 8/16/32 位編碼。
ANSI 和代碼頁:「ANSI」通常指功能有限且互不相容的 8 位元 Windows 代碼頁。執行 OEM-Latin II 的電腦開啟 IBM EBCDIC-Cyrillic 文字時會看到錯誤的字元。 Unicode 透過其獨特的程式碼庫和自身格式之間的無損轉換解決了這個問題。
系統(Windows、Solaris)上的實作與轉換
Windows 內部使用 UTF-16 作為其現代 API 並提供以下功能 多位元組轉寬字符 y WideCharToMultiByte 在 Unicode 和代碼頁(SBCS/DBCS/MBCS)之間進行轉換。 如果強制轉換為代碼頁,可能會有損失 如果它不能代表所有的字元。
Windows 上的新應用程式應在內部使用 UTF-16 並將轉換留給邊緣(I/O,協定),最大限度地減少損壞。 儘管如此,Windows 在不可避免的情況下仍會維護程式碼頁支援。.
根據修訂後的文檔,Oracle Solaris 11 支援 Unicode 6.0 和 ISO/IEC 10646:2011 在系統級別,使用 UTF-8 作為其參數集中的預設格式,這避免了位元組順序問題並透明地保留了 ASCII。
Unicode 實踐:Web、文件和程式設計
在網路上,通常以 UTF-8 來提供和儲存內容. 在 HTML 中,聲明' ' 以確保相容性,並在必要時使用十六進位數位實體(例如:歐元“€”)。
備份資訊類型和提示在 Word 中,您可以插入 Unicode 符號 只需將遊標放在文字上,然後轉到“插入”>“符號”,或輸入代碼並按下 Alt+X 即可;這會將值轉換為字符,遵循通常的建議。另請參閱 Alt 代碼列表 從鍵盤插入符號。
用編程語言在 Python 3 中,字串現在是 Unicode 編碼的;在 Java 和 C# 中,可以使用「\uXXXX」轉義;在 HTML 中,可以使用「XXXX;」。重要的是,編輯、編譯和傳輸時使用相同的編碼,以避免錯誤。
如果整個字串都是 Unicode,則複製和貼上符號有效。如果零件使用不同的編碼,可能會出現問號、方框或奇怪的符號。
字元資料庫(UCD)、屬性和類別
Unicode 字元資料庫 (UCD) 為每個代碼點發布其名稱、類別、腳本、大小寫屬性、方向性和其他特徵。這些資訊對於渲染和文字處理引擎的正常運作至關重要。
得益於這些特性,不同的組件和演算法(例如排序、分詞或大小寫轉換)可以對相同的資料表現出一致的行為。
標準的版本和擴展:亮點
Unicode 隨著每個版本的更新而發展,並融入了新的文字、符號和表情符號。亮點包括 1.0 年發布的包含 1991 個字元的 7.161 版本,以及後續的擴展版本,添加了數千個新的符號、表意文字、表情符號和文字。
例如,2022 年,版本 15.0 增加了 4.192 個 CJK 字元和其他元素,達到約 149.186個字符.
探索 Unicode 表的工具
有免費的實用程式可以搜尋和分析字符:Unibook Character Browser、SYMBL 和 Branah.com 可讓您查詢屬性、名稱和字元區塊,讓開發人員和內容創作者能夠輕鬆快速地找到所需的資訊。
使用案例:地址表單、國際化和業務
允許使用者以自己的語言和文字輸入地址 它有助於減少錯誤並提升體驗。 Unicode 互通性還可以避免在不同系統之間轉換時出現問題,從而在整個數位鏈中保持文字的完整性。
因此,Unicode 是保證文字在整個數位基礎架構中保持最終版本的基本要素。,從網頁表單到資料庫系統和列印文檔,無論您在同一句子中使用“ñ”、阿拉伯語、中文還是表情符號。
相關文章:二進制數字:計算機的秘密語言
目錄
什麼是 Unicode 以及為什麼它如此重要?字元、字形和代碼點規劃、區域和街區CJK 表意文字和 Unihan 項目編碼形式:UTF-8、UTF-16 和 UTF-32UTF-8 中的位元分佈編碼方案、位元組順序和 BOM規範化、組合和等價性雙向演算法和特殊字符Unicode、ISO/IEC 10646 和其他標準(ASCII、ANSI、代碼頁)系統(Windows、Solaris)上的實作與轉換Unicode 實踐:Web、文件和程式設計字元資料庫(UCD)、屬性和類別標準的版本和擴展:亮點探索 Unicode 表的工具使用案例:地址表單、國際化和業務
