17

我无法从我的网络服务向我的数据库发送或显示带有特殊字符的文本。在我的日食中,我已将字符编码设置为 UTF-8,但它仍然不允许我显示字符。例如一个简单的打印,如下面的代码

String test ="привет"; 
System.out.println(test);

或者

String test ="привет";
String query = "insert into communication (`test`) VALUES ('"+ test +"');
PreparedStatement preparedStmt1 = con.prepareStatement(query);
preparedStmt1.executeUpdate();

控制台上的结果以及如果我将其发送到我的数据库是??????。如何让它在控制台上正确显示,并希望在数据库中

4

4 回答 4

13

如果您使用的是 Eclipse,那么

  1. 右键单击您的项目。
  2. 转到属性
  3. 在“文本文件编码”中选择 UTF-8

在此处输入图像描述

于 2014-11-30T22:12:54.767 回答
10

看看这是否有效。

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println(test);

要存储在数据库中,请使用以下以 UTF-8 显式编码字符串

String newString = new String(test.getBytes(), "UTF8");
于 2012-06-07T14:29:27.170 回答
2

是的,它的XXI。世纪,我们仍在努力解决字符编码之类的问题......

我的第一个猜测是:

  1. 您的源文件编码可能是错误的(您是否使用 Maven 之类的构建工具?可能还需要在那里设置源编码),
  2. 你的控制台编码可能是错误的(你是在 Windows 下吗?默认的命令行控制台默认不是 UTF,它依赖于本地,但是在注册表中你可以设置它的编码)
  3. 您的 DB 编码可能不正确(表编码是什么,您可以检查一下吗?)
于 2012-06-07T14:31:50.403 回答
0

可能您需要先将字符串解码为 ISO-8859,然后再将其编码为 UTF-8

于 2012-06-07T14:36:15.313 回答