无法插入chense字符mysql

时间:2017-10-31 09:39:12

标签: mysql character-encoding chinese-locale

您好我想在我的sql数据库中插入一些中文字符。对于某些角色我没有遇到任何问题,但是对于第二个插入第二个角色,我收到错误,如下所示。以前有没有人遇到过这种问题。我选择了错误的字符集还是整理?

参考 https://dev.mysql.com/doc/refman/5.7/en/faqs-cjk.html#faq-cjk-why-cjk-fail-searches

null

2 个答案:

答案 0 :(得分:2)

根据Unicode character inspector薛萍的UTF编码为:

薛 = E8 96 9B
 = F0 A6 86 B1
萍 = E8 90 8D

MySQL对此抱怨:

\xF0\xA6\x86\xB1\xE8\x90

所以一切都显然是正确的,除了utf8_unicode_ci的一些实现细节,在MySQL中,它是一个不完整的UTF-8编码,只接受最多三个字节的字符。因此无法存储为utf8_unicode_ci

您需要切换到某些utf8mb4_...编码。

答案 1 :(得分:0)

除了将设置为utf8mb4之外,您还必须告诉MySQL 客户端正在说utf8mb4(而不仅仅是utf8)。对于某些客户端,最好在建立连接时进行,对于某些客户端,有一个辅助命令,例如SET NAMES utf8mb4,应在连接后立即执行。

调试Q& A:Trouble with UTF-8 characters; what I see is not what I stored

这似乎是一个相当不寻常的(或新的?)汉字;偶http://unicode.scarfboy.com/?s=f0a686b1无法显示图形。