gpt4 book ai didi

java - 通过按位运算将 Unicode 转换为字符

转载 作者:行者123 更新时间:2023-12-02 07:21:50 24 4
gpt4 key购买 nike

感谢 this,我知道如何将 Unicode 转换为字符问题,但是当我对 Unicode 进行按位运算时,效果不太好。

.fromCharCode() 是一个 Javascript 函数,用于将 Unicode 转换为字符。我想知道它在 Java 中的等效项,能够将按位运算作为参数处理。

此代码无法编译

public String str2rstr_utf8(String input) {
String output = "";
int i = -1;
int x, y;
while (++i < input.length()) {
/* Decode utf-16 surrogate pairs */
x = Character.codePointAt(input, i);
y = i + 1 < input.length() ? Character.codePointAt(input, i + 1) : 0;
if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) {
x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF);
i++;
}
/* Encode output as utf-8 */
if (x <= 0x7F) output += String.fromCharCode(x);
else if (x <= 0x7FF) output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), 0x80 | (x & 0x3F));
else if (x <= 0xFFFF) output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F));
else if (x <= 0x1FFFFF) output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), 0x80 | ((x >>> 12) & 0x3F), 0x80 | ((x >>> 6) & 0x3F), 0x80 | (x & 0x3F));
}
return output;
}

最佳答案

如果我没记错的话,您正在尝试用 UTF-8 编码 Java 字符串。 Java 对其有直接支持:

public byte[] str2rstr_utf8(String str)
{
return str.getBytes(Charset.forName("UTF-8"));
}

关于java - 通过按位运算将 Unicode 转换为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105210/

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