此查询正常工作:
set character_set_client = utf8
同样适用于utf8mb4, big5, dec8, cp850, hp8, koi8r, latin1, latin2, swe7, ascii, ujis, sjis, hebrew, etc。
但是,当我尝试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一起工作?
答案 0 :(得分:1)
你不能。
MySQL docs仅声明ucs2不能使用:
那是5.0 doc链接。 5.5 says:
ucs2,utf16和utf32不能用作客户端字符集
和5.6添加了utf16le
。基本上MySQL期望查询采用ASCII兼容编码,这里的每个doc版本都列出了MySQL版本所知的ASCII不兼容编码。
您是否有任何特别的理由想使用UTF-16?除了与其他UTF-16环境(Win32 API,Java等)交谈之外,它通常是一个糟糕的选择。