在往mysql数据库的表中插入中文数据的时候如果提示:
Incorrect string value: '\xE4\xBC\x9A\xE5\x91\x98' for column 'tableName' at row 1 错误
可以百分百肯定是因为数据库表的编码格式不对造成的,这是因为utf8的编码是由三个字节组成的,但是遇到4个字节长度的中文字就会插入异常了,这是长度不够的原因,那怎么办呢?这时候我们就要用到utf8mb4这个编码了,utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。
解决方法:
1、查看mysql数据库的表的字符集编码,修改为utf-8;
2、在web.xml中增加如下配置:
<filter>
<filter-name>setCharacterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>