gpt4 book ai didi

java - 如何在java中将文本转换为二进制UTF-16字符串?

转载 作者:行者123 更新时间:2023-12-02 09:33:37 24 4
gpt4 key购买 nike

我正在做一个项目,需要我将阿拉伯文本转换为二进制字符串 UTF-16 而不是 utf-8。我将文本转换为 UTF-8 二进制字符串,但不知道如何将过程更改为 utf-16 而不是 utf-8..?因为当我将其更改为 utf-16 时,每个代码点需要 4 个字节而不是 2 个字节。我知道阿拉伯字符范围(范围 0600 到 FFFF 十六进制)对于 utf-16 中的每个代码点恰好需要 2 个字节。所以我不知道我的代码有什么问题。

//将文本转换为二进制

public static String getBinaryFromText(String secretText) {
byte[] bytes = secretText.getBytes(StandardCharsets.UTF_8);
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
}

return binary.toString();
}

最佳答案

字符串本质上是 UTF-16。每个字符都是一个 UTF-16 代码点。 secretText.charAt(0) 是第一个 UTF-16 字符,依此类推

您可以使用Charset 将 UTF-16 视为字节序列进行转换。执行 Charset.forName("UTF-16") 并使用 encode 方法。

关于java - 如何在java中将文本转换为二进制UTF-16字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57735009/

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