Java 如何使用JDBC从Mysql中以正确的编码检索数据

Java 如何使用JDBC从Mysql中以正确的编码检索数据,java,mysql,jdbc,character-encoding,collation,Java,Mysql,Jdbc,Character Encoding,Collation,当我使用sql insert将数据(包括法语字符)插入数据库时,它工作正常: CREATE TABLE Categories(code_interne_c varchar(100) primary key, description varchar(100)); INSERT INTO Categories VALUES ('01','Matières premières'); INSERT INTO Categor

当我使用sql insert将数据(包括法语字符)插入数据库时,它工作正常:

   CREATE TABLE Categories(code_interne_c varchar(100) primary key,
                           description    varchar(100));

   INSERT INTO Categories  VALUES ('01','Matières premières');
   INSERT INTO Categories  VALUES ('02','Articles de conditionnement');
   INSERT INTO Categories  VALUES ('03','Consommables production');
   INSERT INTO Categories  VALUES ('04','Produits de nettoyage');
   INSERT INTO Categories  VALUES ('05','Réactifs');
当我使用mysql命令行时,它也可以正常工作(正如您看到的,它是正常的和预期的输出):

但是当我使用jdbc检索数据时:

public static String testreqchar(){
    try {
        Statement st = cx.createStatement();
        ResultSet rs = st.executeQuery("select * from categories");
        rs.next();
        return rs.getString(2)+"|| and  test French accent characters : é ô ê à è û ";
    } catch (SQLException ex) {
        Logger.getLogger(Methodes.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}
public static void main(String a[]) {

           System.out.println(testreqchar());
}
这是我在IDE和接口中得到的输出:

    MatiŠres premiŠres|| and  test French accent characters : é ô ê à è û
我不知道是什么问题

   Mysql 5.5.27 set on UTF-8 as charset on Win server 2008 R2 French
   mysql-connector-java-5.1.21
   JDK 1.7 Running on win 7 pro French.

useUnicode=true&characterEncoding=UTF8
放在连接字符串的末尾。参见示例

      Connection conn = DriverManager.getConnection  
        ( "jdbc:mysql://localhost/bug_utf8?useUnicode=true&characterEncoding=UTF8"  

@Papa_Jay检查IDE的UTF-8设置。如果你的应用程序是web应用程序,你也可以检查你的浏览器字符编码。这是一个Java桌面应用程序,IDE是Netbeans 7.2,找不到任何可以更改终端字符集的选项。我不知道为什么这个错误没有解决方案,这让我很不安:没有人帮助,尝试了所有的解决方案和技术,但仍然得到了这种格式异常的数据表示,数据库终端显示了良好的编码,但为什么它在应用程序基础上存在格式错误:sit不是IDE问题,它不是Mysql错误,也不是JDBC问题,再次查看我的帖子。到目前为止,我可以正式宣布这不是IDE编码问题,而是Mysql或JDBC问题。
      Connection conn = DriverManager.getConnection  
        ( "jdbc:mysql://localhost/bug_utf8?useUnicode=true&characterEncoding=UTF8"