更新时间:2024-06-03 GMT+08:00

客户端连接的字符集和字符序

含有字符集属性的数据在服务端和客户端之间会自动转换编码。服务端接收到客户端发送的SQL语句后,会将其由客户端字符集client_encoding向数据库字符集server_encoding转换编码。查询结果数据发送到客户端之前也会将数据向客户端字符集character_set_results转换编码。

系统参数说明

  • server_encoding

    创建数据库时指定的字符集,详见CREATE DATABASE章节。

  • client_encoding

    客户端的字符集,可以通过SET NAMES语句修改,详见SET章节。参数说明详见《管理员指南》中“配置运行参数 > GUC参数说明 > 客户连接缺省值设置 > 区域和格式化”章节的“client_encoding”

  • character_set_connection

    SQL语句中未指定字符集的字符串常量的默认字符集,参数说明详见《管理员指南》中“配置运行参数 > GUC参数说明 > 版本和平台兼容性 > 平台和客户端兼容性”章节的“character_set_connection”

  • collation_connection

    SQL语句中未指定字符序的字符串常量的默认字符序,参数说明详见《管理员指南》中“配置运行参数 > GUC参数说明 > 版本和平台兼容性 > 平台和客户端兼容性”章节的“collation_connection”

  • character_set_results

    返回结果的字符集,参数说明详见《管理员指南》中“配置运行参数 > GUC参数说明 > 版本和平台兼容性 > 平台和客户端兼容性”章节的“character_set_results”

    • 对于一个非字符类型对象转换为字符类型的表达式,其结果的字符集和字符序为character_set_connection和collation_connection。

    • 字符类型的绑定参数的字符集和字符默认为系统参数character_set_connection和collation_connection设置的值,绑定参数输入任何值将认作上述字符集。

    • 字符数据转换编码的过程中会校验字符的编码,如果不符合,将会抛出异常。