繁体   English   中英

不支持UTF-8字符

[英]UTF-8 character not supporting

我试图在数据库中添加行,如下所示:

String query = "update Mutable e set e.Name = "Благодаря";
Statement s;
s.execute(query);

但是它更新为?????? 在数据库中。 我将此名称设置为俄语字符串。 但是,如果我在MySQL查询浏览器中运行相同的查询,那么它将正确更新名称。 我找不到原因。

此问题已解决。 问题出在my.cnf文件中。 在my.cnf文件中,默认字符集为latin1。 我将其更改为UTF8,并成功了。

  1. 尝试

    “更新变量集e.Name ='\\ u0411 \\ u043b \\ u0430 \\ u0433 \\ u43e \\ u00434 \\ u0430 \\ u0440 \\ u044f'”;

    u转换为ASCII消除了一个问题:java源文本的编码必须与javac编译器使用的编码相同。

  2. 然后,在具有非西里尔编码的Windows或IDE控制台中,结果很容易显示为假。 与您一样检查数据库中的结果。

    您可以间接检查值:

     System.out.println("Okay: " + !fieldValue.contains("?")); 
  3. 验证连接字符串是否类似于:

     "jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8" 

    这样可以确保驱动程序通信使用UTF-8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM