統一碼定序演算法(英語:Unicode collation algorithm,縮寫:UCA)是統一碼技术报告 #10 中定义的一种算法,它是一种可自定义的方法。對任何以統一碼表示的字符串文本,不論是使用哪種文字和语言,都可為其生成二进制键。這些鍵可以逐字节且有效地比對,從而可以根據語言規則為他們定序或排序。這個過程中,還提供可以忽略大小写、重音等的选项。
統一碼技术报告 #10 还定義了默认統一碼定序元素表(英語:Default Unicode Collation Element Table,縮寫:DUCET)。此文件定義了預設的排列顺序。 DUCET 可针对不同语言进行定制。可以在通用當地數據儲存庫(英語:Common Locale Data Repository,縮寫:CLDR)中找到一些此类自定义。
國際統一碼部件(ICU)中包含了 UCA 的开源實作件。 ICU 支持裁剪,来自 CLDR 的整理裁剪包含在 ICU 中。剪裁效果和许多语言特定的剪裁效果显示在在线ICU 区域设置浏览器中。
目標問題
不同語言及文化,可能使用不同的排序方式,對相同的字符,德國人、法國人、瑞典人使用不同的方式排序。不同的應用,也可能使用不同的排序,譬如字典、電話簿和索引目錄。對於非字母文字,如東亞表意文字,排序也可能根據聲音或外形。此外,排序也可能根據習慣,如忽略標點符號、大寫在小寫前(或反過來)。
語言
|
瑞典
|
z < ö
|
德國
|
ö < z
|
應用
|
德國字典
|
of < öf
|
德國電話簿
|
öf < of
|
使用者習慣
|
大寫優先
|
A < a
|
小寫優先
|
a < A
|
多層級比較
統一碼定序演算法歸納出了多層級的比較方式。
等級
|
描述
|
例子
|
L1
|
基本
|
role < roles < rule
|
L2
|
重音符
|
role < rôle < roles
|
L3
|
大小寫或變體
|
role < Role < rôle
|
L4
|
標點符號
|
role < “role” < Role
|
Ln
|
|
role < ro□le < “role”
|
另見
- Collation
- ISO/IEC 14651
- 欧洲订购规则(EOR)
- 通用當地數據儲存庫(CLDR)
外部链接
工具