在 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
)。 -
支持将数据从其他字符集转换到 gb18030 字符集。
-
支持 SQL 语句,例如
SET NAMES
。 -
支持 gb18030 字符串之间的比较,以及 gb18030 字符串与其他字符集字符串之间的比较。字符串具有不同的字符集时,会进行转换。忽略尾随空格的比较也被支持。
-
Unicode 私有使用区 (U+E000, U+F8FF) 被映射到
gb18030
。 -
没有从 (U+D800, U+DFFF) 到 GB18030 的映射。尝试将代码点在此范围内的转换将返回 '
?
'。 -
如果输入序列非法,将返回错误或警告。如果在
CONVERT()
中使用非法序列,将返回错误。否则,将返回警告。 -
为了与
utf8mb3
和utf8mb4
一致,UPPER 不支持 ligatures。 -
使用
gb18030_unicode_520_ci
排序时,ligatures 的搜索也将匹配大写 ligatures。 -
如果一个字符有多个大写字符,则选择的大写字符是其小写形式的字符本身。
-
多字节序列的最小长度为 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 排序规则。如果您需要确保 ligatures 被正确排序,请使用此排序规则。