2

我正在尝试通过包含一些国际字符的 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 和普通 Statement

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

有关环境的一些信息... OS - Mac osx 10.6.8 IDE - netbeans

在 ubuntu 上运行的 mysql 5.5.23

4

1 回答 1

0

如果您在 java 源文件或属性文件中键入查询,则您使用的是 utf-8 编辑器。
如果您使用的是 eclipse(Preferences>General>Workspaces 并设置文本编码)

于 2013-03-24T09:43:12.000 回答