最近在开发数据同步系统的过程中从Sqlserver数据库往mysql数据库同步数据的过程中遇到了一个问题。
问题是这样的
Incorrect string value: '\xA4\x9F2003...' for column 'BackgroundIntro' at row 1
表中这个两个字段定义的数据类型分别为
mysql ====> BackgroundIntro longtext
sqlserver ====> BackgroundIntro text
字符集:utf8 -- UTF-8 Unicode
排序规则:utf8_general_ci
以上都以sqlserver的对应,并且将存在乱码问题无法入库的单条数据单独拿出来插入也是可以正常入库的,但经过程序处理再入库则出现了异常,
正常情况应该是可以进入的才对,经过一番查找终于发现了原因:
发现自己在mysql设置数据连接的时候设置的是:jdbc:mysql://127.0.0.1:3306/db?autoReconnect=true
于是将数据库连接的编码也指定为utf-8连接,修改为:
jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull
问题得到了很好的解决。