字符集与字符序
字符集(Character Set)是字符的编码规则,字符序(Collation)是字符的排序规则,本章主要对M-Compatibility下的字符集、字符序进行介绍,以下介绍的字符集、字符序规则和语法仅在M-Compatibility下支持。
- M-Compatibility的字符集和字符序存在以下要求:
- M-Compatibility的字符集和字符序支持以下功能:
除SQL_ASCII库外,其他字符集的数据库支持多字符集混用。
支持的字符集
M-Compatibility下支持的字符集如下:
|
字符集 |
说明 |
默认字符序 |
|---|---|---|
|
utf8 |
针对Unicode的可变长度字符编码,字符编码长度1~4字节。 |
utf8mb4_general_ci |
|
utf8mb4 |
与utf8为同一字符集。 |
utf8mb4_general_ci |
|
gbk |
国标汉字编码扩展字符集。 |
gbk_chinese_ci |
|
gb18030 |
国标汉字编码字符集。 |
gb18030_chinese_ci |
|
binary |
二进制伪字符集。 |
binary |
|
latin1 |
拉丁字符集。 |
latin1_swedish_ci |
- 当前数据库级、模式级、表级和字段级语法,仅支持指定为上述的字符集。
- binary字符集实际通过已有字符集SQL_ASCII实现。
- 当前GaussDB字符集之间的转换逻辑相比于mysql存在差异,因此可能存在一些特殊字符在M-Compatibility下可以转换,而mysql下转换失败;不建议使用这些生僻的特殊字符。
- 目前GaussDB对不属于当前字符集的非法字符未执行严格的编码逻辑校验,可能导致此类非法字符成功输入。
支持的字符序
M-Compatibility下支持的字符序如下:
|
字符序 |
所属字符集 |
说明 |
空白填充 |
|---|---|---|---|
|
utf8_bin |
utf8 |
使用二进制排序规则。 |
支持 |
|
utf8_general_ci |
utf8 |
使用通用排序规则。 |
支持 |
|
utf8_unicode_ci |
utf8 |
使用基于 Unicode Collation Algorithm (UCA) 的排序规则。 |
支持 |
|
utf8mb4_bin |
utf8mb4 |
同utf8_bin。 |
支持 |
|
utf8mb4_general_ci |
utf8mb4 |
同utf8_general_ci。 |
支持 |
|
utf8mb4_unicode_ci |
utf8mb4 |
同utf8_unicode_ci。 |
支持 |
|
utf8mb4_0900_ai_ci |
utf8mb4 |
使用基于 Unicode Collation Algorithm (UCA) 的排序规则。 |
支持 |
|
gbk_bin |
gbk |
使用二进制排序规则。 |
支持 |
|
gbk_chinese_ci |
gbk |
使用中文语言(拼音)排序规则。 |
支持 |
|
gb18030_bin |
gb18030 |
使用二进制排序规则。 |
支持 |
|
gb18030_chinese_ci |
gb18030 |
使用中文语言(拼音)排序规则。 |
支持 |
|
binary |
binary |
使用二进制排序规则。 |
不支持 |
|
latin1_swedish_ci |
latin1 |
使用瑞典语排序规则。 |
支持 |
|
latin1_bin |
latin1 |
使用二进制排序规则。 |
支持 |
- 字符序名称是以和它们相关联的字符集的名称作为开头,通常后面加一个或多个表示其他字符序特征的后缀,例如: _bin表示二进制排序规则, _ci表示不区分大小写。
- 当字符序支持空白填充属性时,字符串进行比较时忽略末尾空格,例如 : 'A ' = 'A'。