我想从csv文件中读取数据然后写入MySql。数据包含外语。
当我尝试将包含日文字符的记录插入MySql时,我收到此错误。
"1366Incorrect string value: '\xE6\xB0\xB4\xE7\x9D\x80...' for column 'name' at row 1"
SQL语句如下所示:
INSERT INTO `MerchandiseMaster` (id,name) VALUES ('20000101','JANIE AND JACK水着 鶯茶系 大胆花柄')
我的csv文件使用UTF-8编码,MySql数据库架构的字符集为utf8_gerneral_ci
。
当我通过JDBC(mysql-connector-java-5.1.34-bin.jar
)连接到数据库时,我已经放了这些参数:
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydata?"
+ "useUnicode=yes&characterEncoding=UTF-8&user=user123&password=user123.");
我的问题是:
我还缺少其他正确处理外国字符的内容吗?
答案 0 :(得分:2)
我在一个网站上发现了这个,所以告诫emptor ,但显然MySQL的UTF-8支持是不完整的。 2010年,他们添加了支持整个UTF-8编码方案的新支持utf8mb4
。
添加到您的MySQL配置文件:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
这里&#39; sa link to the full article.我还没有尝试过,所以先仔细测试一切,然后在做任何事情之前备份数据库。 < / p>