Mysql 错误:Incorrect string value: '\xF0\xA8\x8B\xA2' for column 'CONTENT' at row 1

项目中向MySQL存储繁体字“?”时出现错误,网上资料多认为是表字符集问题,将表和字段字符集改为utf8均无效。查看log发现浏览器端读取使用UTF8,编码用GBK后传后端,MySQL编码存储时出错,最终问题交香港同事处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天项目中出现一个错误:在把这个字“?”存进MySQL中时候出现错误:

Incorrect string value: '\xF0\xA8\x8B\xA2' for column 'CONTENT' at row 1

在网上找了不少相关的资料,都是说原因出现在表的字符集上,根据资料把表的字符集改为utf8,但是没有效果,然后把字段的字符集也改为utf8,还是没有效果。详情可以参考此文章:https://blog.youkuaiyun.com/ch717828/article/details/41357431/

因为“?”字是繁体字,查看log发现在浏览器端的读取出现问题,浏览器端使用了UTF8读取,然后使用GBK来编码后再传到后端,后端存在MySQL,然后MySQL把此字编成“\xF0\xA8\x8B\xA2”存在表中,就是在这一步骤出现问题。

“?”的UTF-8编码有两种结果:

“��”  “%F0%A8%8B%A2”

至此还是没有找到原因,所以没有解决此问题,此问题最后交回给香港的同事处理了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值