Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


字符集(CHAR_SET)

📄字数 593
👁️阅读量 加载中...

引入版本

v11.0.0

功能描述

CHAR_SET 用于指定客户端所使用的字符集编码(等效 CLIENT_ENCODING),即会话字符集。服务端依据会话字符集和库字符集,对会话内容进行字符集转换。

参数属性

属性描述
参数类型VARCHAR
默认值GBK
取值范围{UTF8,GBK,GB18030,BINARY,etc.}
影响范围会话级
修改方式在线修改,立即生效

提示

支持查看系统变量 CHARSETS 或访问系统表 SYSDBA.SYS_CHARSETS 查看受系统支持的字符集。

使用场景说明

  1. 只有字符类的数据才会涉及字符集转换,数据入库会进行客户端字符集向库字符集转换,数据访问会进行库字符集向客户端字符集转换。
  2. 避开字符集转换可减少性能开销。
  3. 若未显式指定 CHAR_SET,则使用系统参数 def_charset 作为连接字符集。
  4. 当客户端实际字符集与连接会话上设置的字符集不一致时,会出现乱码。
  5. 当前版本 JDBC 驱动不支持指定字符集的排序规则。

注意

字符集的排序规则区别:ci 不区分大小写,bin 区分大小写,cs 区分大小写。创建库和连接会话字符集在不指定 bin 和 ci 后缀时使用bin类字符集(同一字符集不同后缀也涉及字符集转换问题)。

示例

  • 查询当前会话的字符集

    sql
    SQL> SHOW CHAR_SET;
    
    +----------+
    | CHAR_SET |
    +----------+
    | UTF8     |
    +----------+
    
    (1 row)
    Use time:0 ms.
  • 设置会话字符集

    sql
    SQL> SET CHAR_SET TO GBK;