今天我做了一个小实验,从sqlserver 2010中将一张表转移到mysql中,使用的是基本的jdbc,前面复制的好好地,不知道怎么了,到了第三万行,突然出现了下面的异常
Incorrect string value: 'xF0x9Fx92x9C' for column 'name' at row 1
......
name字段基本都是中文,偶尔会有一些英文,因为条目太多,无法确定出问题的行数
猜想应该是编码的问题,但是我的mysql编码是utf-8啊,这不科学啊
而且在异常发生前,都是好的啊
我试着查看并修改mysql的相关编码,参考了下面的文章,说的很仔细
我发现,mysql中连接有默认编码,数据库有默认编码,表有默认编码,就连字段都有默认编码.....
我将字段的编码都改成了gbk,
不好使,后来,我将jdbc的url改成了
String url = "jdbc:mysql://localhost:3306/kaifang?user=root&password=070821&useUnicode=true&characterEncoding=GBK";
这样,乱码问题就解决了