gpt4 book ai didi

Java将unicode代码点转换为字符串

转载 作者:行者123 更新时间:2023-11-29 07:39:07 26 4
gpt4 key购买 nike

UTF-8 值怎么能像=D0=93=D0=B0=D0=B7=D0=B5=D1=82=D0=B0Java 中转换?

我试过类似的东西:

Character.toCodePoint((char)(Integer.parseInt("D0", 16)),(char)(Integer.parseInt("93", 16));

但它不会转换为有效的代码点。

最佳答案

该字符串是字节的十六进制编码,所以最好的方法是将字符串解码为byte[],然后调用new String(bytes, StandardCharsets.UTF_8).

更新

这是一个比另一个答案中“sstan”提供的字符串解码更直接的版本。当然,两个版本都不错,所以请使用让您更舒服的那个,或者编写您自己的版本。

String src = "=D0=93=D0=B0=D0=B7=D0=B5=D1=82=D0=B0";

assert src.length() % 3 == 0;
byte[] bytes = new byte[src.length() / 3];
for (int i = 0, j = 0; i < bytes.length; i++, j+=3) {
assert src.charAt(j) == '=';
bytes[i] = (byte)(Character.digit(src.charAt(j + 1), 16) << 4 |
Character.digit(src.charAt(j + 2), 16));
}
String str = new String(bytes, StandardCharsets.UTF_8);

System.out.println(str);

输出

Газета

关于Java将unicode代码点转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32301830/

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