在 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
)。支持将数据转换为其他字符集,以及从其他字符集转换数据。
支持诸如
SET NAMES
之类的 SQL 语句。支持
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
:默认排序规则,支持拼音。非中文字符的排序基于原始排序键的顺序。原始排序键为GB(UPPER(ch))
(如果UPPER(ch)
存在)。否则,原始排序键为GB(ch)
。中文字符根据 Unicode 通用区域数据存储库 (CLDR 24) 中定义的拼音排序规则进行排序。非中文字符在中文字符之前排序,但GB+FE39FE39
除外,它是码位最大值。gb18030_unicode_520_ci
:Unicode 排序规则。如果您需要确保连字按正确顺序排序,请使用此排序规则。