我应该在字符串中显示/至少打印附加字符 String str =(附加)
System.out.println("Str : "+Str);
但是我无法打印确切的字符。我确实使用过UTF 8和16编码。
提前致谢
答案 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();
}
}