跳转到内容

Unicode相容字符

维基百科,自由的百科全书

这是本页的一个历史版本,由Kanashimi留言 | 贡献2012年7月27日 (五) 07:02 語意上相異字符编辑。这可能和当前版本存在着巨大的差异。

當講解和談論統一碼UCS時,經常提到「相容字符」這個字眼。相容字符是指統一碼聯盟主張不要使用的圖像式字元,正如統一碼聯盟所說:

若不是為了與其他標準間相容和能夠雙向對應轉換,就不會在統一碼中編碼的字符。

然而,其定義實在遠比這話語有更深層和複雜的意味。每個字符都有一個分解相容性分解的屬性,可是大部分字符這個屬性都是沒有指定內含值,惟統一碼聯盟替超過五千個字符指定了相容性分解項目內的值。這個值能將相容字符對映到一個或多個的其他字符,並藉由設定一個字符的分解屬性,表達了此字符為統一碼中的相容字符。指定某字符為相容字符的理由各異,下面有更詳細的說明。「分解」這個用語有時會令人感到困惑,因為有些字符「分解」後還是單個字符的形態,這時該字符的分解值就是另一個相等或近似相等的字符。

相容字符種類和關鍵字

在統一碼的 5,402 個相容分解屬性中,可將這些相容字符分成 17 群,並賦予其關鍵字。具有相容分解但卻沒有關鍵字的字符稱作標準可分解字符,這些字符並非相容字符。相容可分解字符的關鍵字包括: <initial>、<medial>、<final>、<isolated>、<wide>, <narrow>、<small>、<square>、<vertical>、<circle>、<noBreak>、<fraction>、<sub>、<super>和 <compat>。 這些關鍵字提供了一些訊息:包含相容字符和它的相容分解字符序列。 相容字符可分為以下三類:

  1. 對於一些軟體或字型,可能沒有支援完整的統一碼文字編排能力。因此,統一碼提供了一些預組含附加符號字母的字符。
  2. 字符可能是從其它字集而來的,或是用於豐富文件而非純文字的字符。
  3. 一些其它字符是視覺上相似但語意上不同。因為這些語意上不同的字符有可能會使用相似的字形,文書處理軟體應該向使用者指示出其可能的混淆。

當比較和校正(排序)文句時,不同的形式和字符不同版本可能會有不同的處理結果。例如,軟體使用者可能會困惑,在尋找一頁中的大寫字母“I”,但軟體卻無法找到在視覺上相似的羅馬數字“Ⅰ”。

相容對應的種類

字形代換和分解

對於遵循統一碼標準的文字處理和顯示軟體來說,有些相容字符是不重要的。這些包含:

  • 預作變音字母.

如 Å(U+00C5),統一碼傾向視為兩個分開的字符,一個拉丁字母 A (“Latin letter A”)結合一個“Combining Ring Above”(U+030A)。

  • 連音符
  • 預作羅馬數

譬如,羅馬數十二(“Ⅻ”:U+216B)可以分解成一個羅馬數十(“Ⅹ”:U+2169)和兩個羅馬數一。

  • 預作分數
  • 依本文而變的字形

豐富文本用的相容字符

語意上相異字符

規範化

統一碼要求軟體在進行比較或校正文句時,需要先經過相容分解,這個過程稱作規範化。這是做一些相似運算時所必須的動作,如當一個使用者進行“不區分大小寫”或“不區分附加符號的字母”的搜尋時。典型的規範化是指不會改變底層儲存的資訊(無失真)。然後,有些軟體可能會造成永久的改變,如在文件內容中刪除標準的或非標準的相容字符(失真)。

參考

外部鏈接