在 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 排序规则。如果您需要确保连字的排序正确,请使用此排序规则。