从java应用程序插入mysql数据库时的Characterset问题

时间:2010-06-11 08:27:38

标签: java mysql character-encoding

我编写了一个解析某些网页的html代码的应用程序。我的问题是将数据插入我的mysq数据库。所以例如我想插入ľščťžýáíé,当我看到桌子时,我得到了?š??žýáíé。

我想问题可能是我正在下载的html页面是用cp1250编码的。但数据库是utf8。

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"cp1250"));

这就是我下载数​​据的方式。

您对如何解决此问题有一些想法吗?因为我已经用完了。

编辑:哦,当我将数据写入控制台时(使用System.out,我知道我不应该使用它...... :))然后每个字符都正确显示。

2 个答案:

答案 0 :(得分:0)

在连接到mysql之后和任何插入之前发出set names CP1251;

答案 1 :(得分:0)

所以我发现了什么有效。

当我通过JDBC连接到MySQL时,我使用了以下连接字符串

conString = "jdbc:mysql://"+host+"/"+database+"?useUnicode=true&characterEncoding=utf8";

这就是诀窍。我不得不使用?useUnicode=true&characterEncoding=utf8

强制JDBC使用utf8进行连接