MySQL Java国际字符(UTF-8)编码

时间:2012-07-25 14:42:43

标签: java mysql jdbc character-encoding utf

我试图通过包含一些国际字符的Java JDBC将一些数据插入到mysql DB中。

INSERT INTO my_table (`name`, `lat`, `long`, `label`) VALUES('Ädelfors folkhögskola', '57.43611145019531', '15.19722175598145', 'Ädelfors folkhögskola')

如果我直接从mysqlworkbench,phpmyadmin等使用它,这个查询工作得很好 但是当我尝试使用java JDBC时,国际字符完全出现乱码

Ädelfors folkhögskola =>  ?��delfors folkh??gskola

我迄今为止尝试过的解决方案包括

jdbc:mysql://server/database?characterEncoding=UTF-8

Setting - Dfile.encoding=UTF-8
Both my database and table are encoded as utf8 - default collation

这是"show variables like '%char%'"

的转储
character_set_client - utf8

character_set_connection - utf8

character_set_database - utf8

character_set_filesystem - binary

character_set_results - utf8

character_set_server - latin1

character_set_system - utf8

character_sets_dir - /usr/share/mysql/charsets/

我尝试过使用preparesStatements和普通语句

我知道有很多类似的问题,我已经提到了大部分问题,但可以找到解决方案。

有关环境的一些信息...... 操作系统 - Mac osx 10.6.8 IDE - netbeans

在ubuntu上运行的mysql 5.5.23

1 个答案:

答案 0 :(得分:0)

如果您在java源代码或属性文件中键入了查询,则使用utf-8编辑器 如果您正在使用eclipse(首选项>常规>工作区并设置文本编码)