gpt4 book ai didi

java - 汉字Java的UTF编码

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:26 25 4
gpt4 key购买 nike

我正在通过来自轴网络服务的对象接收字符串。因为我没有得到我期望的字符串,我通过将字符串转换为字节进行了检查,我得到了六进制的 C3A4C2 BDC2A0 C3A5C2 A5C2BD C3A5C2 90C297,当我期待 E4BDA0 E5A5BD E59097 这实际上是 UTF 中的你好吗- 8.

任何想法可能导致你好吗变成 C3A4C2 BDC2A0 C3A5C2 A5C2BD C3A5C2 90C297?我做了一个谷歌搜索,但我得到的只是一个描述 python 中发生的问题的中文网站。任何见解都会很棒,谢谢!

最佳答案

你有所谓的双重编码。

您正确指出的三个字符序列“你好吗”以 UTF-8 编码为 E4BDA0 E5A5BD E59097。

但是现在,开始以 UTF-8 编码该编码的每个字节。从 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();
}
}

关于java - 汉字Java的UTF编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com