如何更改JDBC编码以支持法语重音字符

时间:2012-09-06 13:06:35

标签: java mysql jdbc encoding character-encoding

我在使用 JDBC (mysql-connector-java-5.1.18-bin.jar)从 Mysql 5.1 获取数据时遇到问题。

我的insert into语句是这样的:

    INSERT INTO Categories  VALUES ('01','Matières premières');

并且 Netbeans 终端和Swing接口的输出如下:

    MatiŠres premiŠres

我认为我需要指定编码参数。

你能帮忙吗?

p.s:操作系统是Windows 7 French。

这是我在类连接中对数据库的URL:

    DriverManager.getConnection("jdbc:mysql://X.X.X.X:XXXX/XXXX?useUnicode=yes&characterEncoding=UTF-8","XXXX","XXXX");

2 个答案:

答案 0 :(得分:1)

两种解决方案:

  • 最安全的一个:将表设置为collat​​ion“utf8-general-ci”并设置mysql以对连接使用相同的排序规则。因此,您不会遇到任何问题,使用jdbc连接时也不需要指定任何内容。

  • 另一个,现在几乎不可接受但可能:确定表的排序规则,并使用它在JDBC中配置连接,如下所述:http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-charsets.html。但是你必须知道你的表格的编码是什么(因为你不知道它,如果你在法国,它可能是拉丁文1)。

要确定或更改表格的编码,您可以使用任何mysql管理工具。确保表和连接一致。

答案 1 :(得分:0)

您必须使用System.setProperty(“file.encoding”,“I​​SO-8859-1”)将编码设置为ISO-8859-1