0

根据 MYSQL8 文档:

关于客户端连接的字符集和排序规则处理的几个问题可以根据系统变量来回答:

  • 离开客户端时的语句是什么字符集?
    服务器将 character_set_client 系统变量作为客户端发送语句的字符集。
  • 服务器收到语句后应该将它们翻译成什么字符集?

    为了确定这一点,服务器使用 character_set_connection 和 collat​​ion_connection 系统变量:

    服务器将客户端发送的语句从 character_set_client 转换为 character_set_connection。例外:对于具有引入者(例如 _utf8mb4 或 _latin2)的字符串文字,引入者确定字符集。请参阅第 10.3.8 节,“字符集介绍器”。

读完这段话,我一头雾水。文档是不是想告诉我们,如果使用introducer,introducer会替换character_set_connection编码?

select _gbk '中文';或者让我举一个具体的例子,执行和执行之间有什么区别select '中文';吗?介绍人如何_gbk影响服务器对语句的字符集转换?

我希望有人能帮我解释一下官方描述的含义和我的这个例子,非常感谢。

参考链接:charset-connection

4

1 回答 1

0

select _gbk '中文'和的区别在于select '中文',in select _gbk '中文','中文'被理解为在从客户端传输到服务器时,属于 GBK 字符集,而 in select '中文','中文'被理解为属于 中的字符集character_set_client

于 2020-07-13T17:34:05.220 回答