异常处理:使用UTF-8编码Mysql仍然抛出Incorrect string value异常

在写这个博客的时候遇到了一个问题,就是插入数据,有的时候会报错,数据库用的是uft8,数据表也是,字段也是,但是原因为什么呢?

网上多方查找发现,有些字符会得到4字节的utf8编码,所以在插入数据时会抛出异常:

Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...' 

 

原来问题出在mysql上,mysql如果设置编码集为utf8那么它最多只能支持到3个字节的UTF-8编码,而4个字节的UTF-8字符还是存在的,这样一来如果你建表的时候用的utf8字符集出异常就理所当然了。

 

解决方法很简单,修改字段或者表的字符集为utf8mb4。

 

比较蛋疼的是,字符集utf8mb4在mysql 5.5.3之后才支持

posted @ 2015-11-30 14:54  王永东gg  阅读(682)  评论(0)    收藏  举报