你有所谓的双重编码。
您有正确指出的三个字符序列“你好吗”在 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();
}
}