Unicode相容字符
當講解和談論統一碼和 UCS 時,經常提到「相容字符」這個字眼。相容字符是指統一碼聯盟主張不要使用的圖像式字元,正如統一碼聯盟所說:
若不是為了與其他標準間相容和能夠雙向對應轉換,就不會在統一碼中編碼的字符。
然而,其定義實在遠比這話語有更深層和複雜的意味。每個字符都有一個分解或相容性分解的屬性,可是大部分字符這個屬性都是沒有指定內含值,惟統一碼聯盟替超過五千個字符指定了相容性分解項目內的值。這個值能將相容字符對映到一個或多個的其他字符,並藉由設定一個字符的分解屬性,表達了此字符為統一碼中的相容字符。指定某字符為相容字符的理由各異,下面有更詳細的說明。分解這個用語有時會令人感到困惑,因為有些字符分解後還是單個字符的形態,這時該字符的分解值就是另一個相等或近似相等的字符。
相容字符種類和關鍵字
在統一碼的 5,402 個相容分解屬性中,可將這些相容字符分成 17 群,並賦予其關鍵字。具有相容分解但卻沒有關鍵字的字符稱作標準可分解字符,這些字符並非相容字符。相容可分解字符的關鍵字包括: <initial>、<medial>、<final>、<isolated>、<wide>, <narrow>、<small>、<square>、<vertical>、<circle>、<noBreak>、<fraction>、<sub>、<super>和 <compat>。 這些關鍵字提供了一些訊息:包含相容字符和它的相容分解字符序列。 相容字符可分為以下三類:
- 對於一些軟體或字型,可能沒有支援完整的統一碼文字編排能力。因此,統一碼提供了一些預組含附加符號字母的字符。
- 字符可能是從其它字集而來的,或是用於豐富文件而非純文字的字符。
- 一些其它字符是視覺上相似但語意上不同。因為這些語意上不同的字符有可能會使用相似的字形,文書處理軟體應該向使用者指示出其可能的混淆。
當比較和校正(排序)文句時,不同的形式和字符不同版本可能會有不同的處理結果。例如,軟體使用者可能會困惑,在尋找一頁中的大寫字母 'I' ,但軟體卻無法找到在視覺上相似的羅馬數字‘Ⅰ’。
規範化
統一碼要求軟體在進行比較或校正文句時,需要先經過相容分解,這個過程稱作規範化。這是做一些相似運算時所必須的動作,如當一個使用者進行"不區分大小寫"或"不區分附加符號的字母"的搜尋時。典型的規範化是指不會改變底層儲存的資訊(無失真)。然後,有些軟體可能會造成永久的改變,如在文件內容中刪除標準的或非標準的相容字符(失真)。
參考
外部鏈接
- 漢字的標準化 - 中國哲學書電子化計劃 - 說明如何處理統一碼相容字符所帶來的困難。