mysql版本为5.6.16
一般情况下该字段插入正常的数据为一个json字符串(‘{code: "你好", sender: "用户A"}’),但是偶尔会出现形如 ‘{ code: "你好"’ 这样的不完整的字符串,导致服务器解析后出现异常,经测试为emoj导致的,但是在测试环境测试时包含emoj的字符却又不与生产环境一样,完全插入不进去并且报错:“truncated_wrong_value_for_field, Incorrect string value: '\xF0\x9F\x90\xA6,...' for column 'mailParams' at row 1”
请问有知道原因的吗?
截断问题一般是列长不够。
而你这个
truncated_wrong_value_for_field
错误分明就是列字符集不对,想要支持 emoji 需要utf8mb4
字符集,而不是utf8
。P.S. 你这生产和测试环境表结构都不一样,真的大丈夫?