12.10.7.2 GB18030 字符集
在 MySQL 中,gb18030
字符集对应于《信息技术 — 中文编码字符集》GB 18030-2005标准,这是中华人民共和国(PRC)的官方字符集。
-
支持 GB 18030-2005 标准中定义的所有代码点。GB+8431A439 和 GB+90308130 范围内未分配的代码点,和 GB+E3329A36 和 GB+EF39EF39 范围内未分配的代码点被视为 '
?
' (0x3F)。未分配代码点的转换返回 '?
'。 -
支持所有 GB18030 代码点的UPPER 和 LOWER 转换,基于 Unicode 的大小写折叠也被支持(基于
CaseFolding-6.3.0.txt
)。 -
支持将数据转换到和从其他字符集。
-
支持 SQL 语句,如
SET NAMES
。 -
支持
gb18030
字符串之间的比较,和gb18030
字符串和其他字符集的字符串比较。如果字符串有不同的字符集,则进行转换。包括或忽略尾部空格的比较也被支持。 -
Unicode 私用区(U+E000,U+F8FF)映射到
gb18030
。 -
(U+D800,U+DFFF) 范围内的代码点没有映射。对这个范围内的代码点进行转换返回 '
?
'。 -
如果 incoming 序列非法,返回错误或警告。如果在
CONVERT()
中使用非法序列,返回错误。否则,返回警告。 -
为了与
utf8mb3
和utf8mb4
保持一致,UPPER不支持联体字。 -
使用
gb18030_unicode_520_ci
排序时,也会搜索大写联体字。 -
如果字符有多个大写字符,那么选择的大写字符是该字符本身的小写字符。
-
最小多字节长度为1,最大为4。序列的长度由第一个或第二个字节确定。
-
gb18030_bin
:二进制排序规则。 -
gb18030_chinese_ci
:默认排序规则,支持拼音。非中文字符的排序基于原始排序键。原始排序键是GB(UPPER(ch))
如果存在UPPER(ch)
否则是GB(ch)
。中文字符按 Unicode 通用地区数据库(CLDR 24)定义的拼音排序规则排序。非中文字符在中文字符之前,除了GB+FE39FE39
,这是代码点最大值。 -
gb18030_unicode_520_ci
:Unicode 排序规则。如果需要确保联体字排序正确,请使用该排序规则。