Incorrect string value: '\xC3\x82\xC2\xA4\xC3\x83...'

一看到 Incorrect string value: '\xC3\x82\xC2\xA4\xC3\x83...' 估计大多数人的反应和我一样:字符集不正确,修改编码为utf8mb4,因为\xC3明显就是4字节的utf8编码嘛。

网上的各种教程也在支撑我们这么做,通常情况下,修改编码后问题就解决了。问题是,也可能无论你怎么改编码,问题仍然存在。

解决

将字段的长度设置改大一些。因为存储\xC3需要占用4个字节,字符串总长度很可能超出原先的预期,导致发生这个错误。

附录

utf8mb4是一种MySQL数据库支持的字符集,它是UTF-8编码的超集,支持BMP和补充字符,每个多字节字符最多需要四个字节。相比之下,utf8mb3只支持BMP字符,每个多字节字符最多需要三个字节。

在MySQL 8.0中,utf8mb3已经被弃用,应该使用utf8mb4代替。如果您想了解有关Unicode字符集和它们的不同属性的信息,请参阅MySQL 8.0参考手册中的“Unicode字符集”

文章作者: 若海; 原文链接: https://www.rehiy.com/post/538/; 转载需声明来自技术写真 - 若海

添加新评论