在 MySQL 中,gb18030
字符集对应于《中华人民共和国国家标准 GB 18030-2005: 信息技术——中文编码字符集》,它是中华人民共和国 (PRC) 的官方字符集。
MySQL gb18030 字符集的特点
支持 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) 和 GB18030 之间没有映射。尝试转换此范围内的代码点将返回“
?
”。如果传入序列非法,则返回错误或警告。如果在
CONVERT()
中使用非法序列,则返回错误。否则,返回警告。为了与
utf8mb3
和utf8mb4
保持一致,不支持对连字使用 UPPER。使用
gb18030_unicode_520_ci
排序规则时,对连字的搜索也会匹配大写连字。如果一个字符有多个大写字符,则选择其小写形式为该字符本身的大写字符。
最小多字节长度为 1,最大长度为 4。字符集使用前 1 或 2 个字节确定序列的长度。
支持的排序规则
gb18030_bin
:二进制排序规则。gb18030_chinese_ci
:默认排序规则,支持拼音。非汉字的排序基于原始排序键的顺序。如果存在UPPER(ch)
,则原始排序键为GB(UPPER(ch))
。否则,原始排序键为GB(ch)
。汉字按照 Unicode 通用地区数据存储库 (CLDR 24) 中定义的拼音排序规则进行排序。非汉字排在汉字之前,但GB+FE39FE39
(代码点最大值)除外。gb18030_unicode_520_ci
:Unicode 排序规则。如果您需要确保连字的排序正确,请使用此排序规则。