【问题标题】:How to change JDBC Encoding to support French accent characters如何更改 JDBC 编码以支持法语重音字符
【发布时间】:2012-09-06 13:06:34
【问题描述】:

我在使用 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。

这是我在课堂连接中的数据库网址:

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

【问题讨论】:

  • 最大的问题可能不在JDBC,而在数据库。你的表和连接的编码是什么?我建议您将它们设置为“utf8-general-ci”。
  • 我不知道如何设置 jdbc 以支持法语口音字符,想帮忙提供代码 sn-p,谢谢陛下。
  • 我们说的是数据库,而不是 jdbc。您通常在创建表时设置表的排序规则(您可以使用任何管理工具更改它),您也可以更改用于与此工具连接的排序规则。
  • 我不这么认为,Mysql 终端上的 select 语句给出了正确的数据编码。 mysql 字符集是“latin2”

标签: java mysql jdbc encoding character-encoding


【解决方案1】:

两种解决方案:

  • 最明智的方法:将您的表设置为排序规则“utf8-general-ci”,并将 mysql 设置为使用相同的排序规则进行连接。所以你不会有任何问题,也不需要在使用 jdbc 连接时指定任何内容。

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

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

【讨论】:

  • Collat​​ion 无关紧要,除非 MySQL(明智地)要求排序规则适用于相关字符串的 字符集/编码(我想想,就是你的意思)。混淆这两者只会导致更多的混乱(你甚至提到utf8_general_ci--注意下划线,而不是连字符--作为上面your comment中的编码)。
  • @eggyal 你能给出更清晰的答案吗?如果你的不那么混乱,我很乐意删除我的。
  • 请帮忙,提供的答案太模糊了。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-11-29
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2011-03-03
    相关资源
    最近更新 更多