Unicode 归类算法 (UCA) 是对整个 Unicode 字符集进行排序的一种算法。它提供语言方面的正确比较、排序和大小写转换。UCA 是作为 Unicode 标准的一部分进行开发的。SQL Anywhere 使用 Unicode 的国际组件 (ICU) 开放源代码库(由 IBM 开发并维护)来实现 UCA。
采用缺省的 UCA 排序可按适当的顺序对大多数语言中的大多数字符进行排序。但是,由于在共享字符的各种语言之间,在排序和比较方面存在诸多变化,UCA 无法为所有语言提供正确的排序。为此,ICU 提供了用于定制 UCA 的语法。请参见归类定制选项。
UCA 以空间和时间上的小小代价提供了高级的比较、排序和大小写转换。
字符串的映射形式比原始字符串要长。通过该算法可对更加复杂的字符进行精密处理。
与 SQL Anywhere 归类算法 (SACA) 不同,Unicode 归类算法 (UCA) 仅用于单字节和 UTF-8 字符集,它将每个字符分成一个或多个属性。对于字母而言,这些属性为基本字符、重音和大小写。
非字母通常只有一个属性,基本字符。
UCA 按如下方式进行字符串比较:
比较基本字符。如果一个基本字符字符串与另一个不同,则比较完成。不考虑重音和大小写。
如果数据库区分重音,则比较重音。如果重音不同,则比较完成。不考虑大小写。
如果数据库区分大小写,则比较每个字符的大小写。
当且仅当两个字符串的基本字符、重音和大小写都相同时,原始字符串值才相等。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |