无法在java类中显示图像字符

时间:2017-09-13 15:12:43

标签: java string utf-8 utf-16 utf

我应该在字符串中显示/至少打印附加字符     String str =(附加)str

 System.out.println("Str : "+Str);

但是我无法打印确切的字符。我确实使用过UTF 8和16编码。

提前致谢

1 个答案:

答案 0 :(得分:2)

您拥有所谓的双重编码。

你有三个字符序列"你好吗"你正确指出的是用UTF-8编码为E4BDA0 E5A5BD E59097。

但是现在,开始用UTF-8编码THAT编码的每个字节。从E4开始。 UTF-8中的代码点是什么?试试吧!这是C3 A4!

你明白了......: - )

这是一个Java应用程序,说明了这一点:

public class DoubleEncoding {
    public static void main(String[] args) throws Exception {
        byte[] encoding1 = "你好吗".getBytes("UTF-8");
        String string1 = new String(encoding1, "ISO8859-1");
        for (byte b : encoding1) {
            System.out.printf("%2x ", b);
        }
        System.out.println();
        byte[] encoding2 = string1.getBytes("UTF-8");
        for (byte b : encoding2) {
            System.out.printf("%2x ", b);
        }
        System.out.println();
    }
}