Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 数据库管理 » 数据库配置 » 国际语言和字符集 » 归类

 

Unicode 归类算法 (UCA)

Unicode 归类算法 (UCA) 是对整个 Unicode 字符集进行排序的一种算法。它提供语言方面的正确比较、排序和大小写转换。UCA 是作为 Unicode 标准的一部分进行开发的。SQL Anywhere 使用 Unicode 的国际组件 (ICU) 开放源代码库(由 IBM 开发并维护)来实现 UCA。

注意

采用缺省的 UCA 排序可按适当的顺序对大多数语言中的大多数字符进行排序。但是,由于在共享字符的各种语言之间,在排序和比较方面存在诸多变化,UCA 无法为所有语言提供正确的排序。为此,ICU 提供了用于定制 UCA 的语法。请参见归类定制选项

UCA 以空间和时间上的小小代价提供了高级的比较、排序和大小写转换。

字符串的映射形式比原始字符串要长。通过该算法可对更加复杂的字符进行精密处理。

与 SQL Anywhere 归类算法 (SACA) 不同,Unicode 归类算法 (UCA) 仅用于单字节和 UTF-8 字符集,它将每个字符分成一个或多个属性。对于字母而言,这些属性为基本字符、重音和大小写。

非字母通常只有一个属性,基本字符。

UCA 按如下方式进行字符串比较:

  • 比较基本字符。如果一个基本字符字符串与另一个不同,则比较完成。不考虑重音和大小写。

  • 如果数据库区分重音,则比较重音。如果重音不同,则比较完成。不考虑大小写。

  • 如果数据库区分大小写,则比较每个字符的大小写。

当且仅当两个字符串的基本字符、重音和大小写都相同时,原始字符串值才相等。

 示例