# 字符集
GaussDB数据库支持指定数据库、模式、表或列的字符集，支持的范围如下。
表1字符集列表 
| MySQL数据库 | GaussDB数据库 |
|:---|:---|
| utf8mb4  | 支持         |
| utf8    | 支持         |
| gbk      | 支持         |
| gb18030  | 支持         |
| binary    | 支持        |
   
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 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范围内的字符。
 
