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

Java 如何更改JDBC编码以支持法语重音字符,java,mysql,jdbc,encoding,character-encoding,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:操作系统是Windows7法语 这是我在类

使用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:操作系统是Windows7法语

这是我在类连接中指向数据库的url:

    DriverManager.getConnection("jdbc:mysql://X.X.X.X:XXXX/XXXX?useUnicode=yes&characterEncoding=UTF-8","XXXX","XXXX");
两种解决方案:

  • 最合理的方法是:将表设置为用作排序规则“utf8 general ci”,并将mysql设置为对连接使用相同的排序规则。因此,在使用jdbc进行连接时,您不会遇到任何问题,也不需要指定任何内容

  • 另一个,现在几乎不能接受但可能:确定表的排序规则是什么,并使用它在JDBC中配置连接,如下所述:。但是你必须知道你的表的编码是什么(因为你不知道,如果你在法国,可能是拉丁语)

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

两种解决方案:

  • 最合理的方法是:将表设置为用作排序规则“utf8 general ci”,并将mysql设置为对连接使用相同的排序规则。因此,在使用jdbc进行连接时,您不会遇到任何问题,也不需要指定任何内容

  • 另一个,现在几乎不能接受但可能:确定表的排序规则是什么,并使用它在JDBC中配置连接,如下所述:。但是你必须知道你的表的编码是什么(因为你不知道,如果你在法国,可能是拉丁语)


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

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

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

最大的问题可能不在JDBC中,而是在数据库中。您的表和连接的编码是什么?我建议您将其设置为“utf8 general ci”。我不知道如何设置jdbc以支持法语重音字符,请您提供一个代码片段,谢谢您,陛下。我们讨论的是数据库,而不是jdbc。您通常在创建表时设置表的排序规则(您可以使用任何管理工具进行更改),您也可以更改用于连接此工具的排序规则。我不这么认为,Mysql终端上的select语句提供了正确的数据编码。mysql字符集是“latin2”。最大的问题可能不在JDBC中,而是在数据库中。您的表和连接的编码是什么?我建议您将其设置为“utf8 general ci”。我不知道如何设置jdbc以支持法语重音字符,请您提供一个代码片段,谢谢您,陛下。我们讨论的是数据库,而不是jdbc。您通常在创建表时设置表的排序规则(您可以使用任何管理工具进行更改),您也可以更改用于连接此工具的排序规则。我不这么认为,Mysql终端上的select语句提供了正确的数据编码。mysql字符集是“拉丁2”排序规则是不相关的,除非mysql(合理地)要求排序规则适用于相关字符串的字符集/编码(我认为这就是您的意思)。混淆两者只会导致更多的混淆(你甚至提到了
utf8\u general\u ci
——注意下划线,而不是连字符——作为上面的编码)。@eggyal你能给出一个更清楚的答案吗?如果你的不那么令人困惑,我很乐意删除我的。请帮忙,提供的答案太模糊了。排序规则是不相关的,除非MySQL(合理地)要求排序规则适用于相关字符串的字符集/编码(我想这就是你的意思)。混淆两者只会导致更多的混淆(你甚至提到了
utf8\u general\u ci
——注意下划线,而不是连字符——作为上面的编码)。@eggyal你能给出一个更清楚的答案吗?如果你的答案不那么令人困惑,我很乐意删除我的。请帮忙,提供的答案太模糊了。