如何在Java EE环境中使用MySql处理外来字符

时间:2015-02-07 21:17:32

标签: java mysql csv jdbc

我想从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.");

我的问题是:

我还缺少其他正确处理外国字符的内容吗?

1 个答案:

答案 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>