此查询工作正常:
set character_set_client = utf8
utf8mb4,big5,dec8,cp850,hp8,koi8r,latin1,latin2,swe7,ascii,ujis,sjis,希伯来语等也是如此。
但是,当我尝试set character_set_client = utf16
或set character_set_client = utf32
时,它们不起作用:
#1231 - 变量"character_set_client"不能设置为"utf16"的值
#1231 - 变量"character_set_client"不能设置为"utf32"的值
为什么命令不起作用?
我们如何使 MySQL character_set_client
与 utf16/32 一起工作?
你不能。
MySQL 文档仅声明不能使用 ucs2:
那是 5.0 文档链接。 5.5 说:
UCS2、UTF16 和 UTF32 不能用作客户端字符集
和 5.6 增加utf16le
.从本质上讲,MySQL希望查询采用ASCII兼容的编码,这里的每个文档版本都列出了MySQL版本所知道的ASCII不兼容编码。
您更喜欢使用 UTF-16 有什么特别的原因吗?除了与其他 UTF-16 环境(Win32 API、Java 等)通信之外,这通常是一个糟糕的选择。