10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(邮政编码)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

10.6错误消息字符集

本节描述MySQL服务器如何使用字符集构造错误消息。有关错误消息的语言(而不是字符集)的信息,请参见第10.12节“设置错误消息语言”.有关配置错误日志记录的一般信息,请参见第5.4.2节“错误日志”

用于错误消息构造的字符集

服务器构造如下错误消息:

  • 消息模板使用UTF-8 (utf8mb3).

  • 消息模板中的参数被替换为应用于特定错误发生的值:

    • 像表或列名这样的标识符在内部使用UTF-8,因此它们被原样复制。

    • 字符(非二进制)字符串值从其字符集转换为UTF-8。

    • 二进制字符串值被复制为范围内的字节0 x200 x7e,使用x \对超出该范围的字节进行十六进制编码。例如,如果试图插入时发生重复键错误0 x41cf9f成一个VARBINARY唯一的列,产生的错误消息使用UTF-8和一些十六进制编码的字节:

      1键重复输入“A\xCF\x9F”

错误消息处理字符集

错误消息一旦构造好,就可以由服务器写入错误日志或发送给客户端:

  • 如果服务器将错误消息写入错误日志,它将按照构造的方式以UTF-8写入,而不转换为另一个字符集。

  • 如果服务器将错误消息发送给客户端程序,则服务器将其从UTF-8转换为character_set_results系统变量。如果character_set_results值为二进制,不发生转换。如果变量值为,则不发生转换utf8mb3utf8mb4因为这些字符集有一个包含消息构造中使用的所有UTF-8字符的集合。

    如果字符不能用character_set_results,在转换过程中可能会发生一些编码。编码使用Unicode编码点值:

    • 基本多语言平面(BMP)范围内的字符(0 x00000 xffff)是用nnnn符号。

    • BMP范围以外的字符(0 x100000 x10ffff)是用\ +nnnnnn符号。

    客户可以设置character_set_results控制它们接收错误消息的字符集。该变量可以直接设置,也可以通过诸如组名称.有关character_set_results,请参阅第10.4节“连接字符集和排序规则”