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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 国际语言和字符集 » 了解归类

 

SQL Anywhere 归类算法 (SACA)

SQL Anywhere 归类算法提供了合理的比较、排序以及单字节和多字节字符集的大小写转换。该算法既节省空间又快。字符串的映射形式(如索引)与原始字符串长度相同。用于比较、排序和大小写转换的映射使用了对字符串每字节值的简单表查找。

SACA 自从 SQL Anywhere 的早期形式 Watcom SQL 开始就提供了。

单字节字符集

在单字节字符集的典型归类中,字符的所有重音和非重音形式都被映射到相同的值,不区分归类重音。相同字母的重音和非重音形式在比较上完全相等且彼此一起进行排序。

归类还提供了大小写字母之间的转换,保留重音。

多字节字符集

在多字节字符集中,前导字节被映射成 256 个不同的值。后随字节使用其二进制值进行比较。

对于多字节字符集的大多数归类而言,这种映射技术提供了合理的排序,因为字符集编码将字符分组成由前导字节标识的 256 字节页。这些页和每页内的字符在字符集中都按合理的顺序排列。归类通常会在字符集内保留页(前导字节)的排序。某些页可能按其它特征排序。例如,为日语代码页 932 提供的 932JPN 归类用于将全宽 (Kanji) 和半宽 (katakana) 字符分组。

仅为 7 位英语字符提供大小写转换。

UTF-8 字符集

UTF-8 是一个多字节字符集。每个字符都包含一个到四个字节。SQL Anywhere 提供了用于对 UTF-8 字符进行排序的 UTF8BIN 归类。

在 UTF8BIN 中,前导字节被映射成 256 个不同的值,后随字节使用其二进制值进行比较。由于 UTF-8 中字符的表示形式以及 256 不同映射值的限制,无法对相关字符(如同一字母的重音和非重音形式)进行分组。排序实质是二进制排序。

仅对 7 位英语字符支持大小写转换。