更新时间:2026-10-21 GMT+08:00
分享

字符集

GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。

表1 字符集列表

MySQL数据库

GaussDB数据库

utf8mb4

支持

utf8

支持

gbk

支持

gb18030

支持

binary

支持

  • GaussDB数据库将utf8和utf8mb4视为同一个字符集,编码最大长度为4字节。当字符串字符集为utf8,指定其字符序为utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_0900_ai_ci时(例如SELECT _utf8'a' collate utf8mb4_bin),MySQL会发生报错,GaussDB不报错。当字符串字符集为utf8mb4,指定其字符序为utf8_bin、utf8_general_ci、utf8_unicode_ci时,存在同样差异。
  • 词法语法解析按照字节流解析,当多字节字符中包含与'\'、'\''、'\\'等符号一致的编码时,会导致与MySQL行为不一致,建议暂时关闭转义符开关进行规避。
  • GaussDB数据库对不属于当前字符集的非法字符未执行严格的编码逻辑校验,严格模式下,使用部分字符函数可能导致此类非法字符成功输入,而MySQL会校验报错。宽松模式下截断后插入,与MYSQL行为一致。严格模式与宽松模式由GUC参数sql_mode的strict_trans_tables配置项决定。
  • GaussDB字符集之间的转换逻辑与MySQL存在差异,binary字符集与其他字符集混用时可能存在转码流程导致的行为不一致,建议使用binary字符集时,client_encoding、server_encoding、character_set_connection等字符集相关参数保持一致,且仅输入ASCII范围内的字符。

相关文档