如何使 MySQL character_set_connection与 utf16 一起工作


How to make MySQL character_set_connection work with utf16?

此查询工作正常:

set character_set_client = utf8

utf8mb4,big5,dec8,cp850,hp8,koi8r,latin1,latin2,swe7,ascii,ujis,sjis,希伯来语等也是如此。

但是,当我尝试set character_set_client = utf16set 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 等)通信之外,这通常是一个糟糕的选择。