gpt4 book ai didi

java OutputStreamWriter 和 CP437

转载 作者:行者123 更新时间:2023-11-30 08:55:00 26 4
gpt4 key购买 nike

我正在尝试下面的代码,我的问题是我用来获取字节数组的字符

根据其字符集,char É 应对应于 144,但我在运行代码时得到的值为 -55,

如果我使用 $ 我会得到 36,这是正确的吗?

谢谢你的帮助

try {
ByteArrayOutputStream result = new ByteArrayOutputStream();
Writer wr = new OutputStreamWriter(result, "CP437");
wr.write("É");//
wr.close();
ba2 = result.toByteArray();
result.close();

} catch (Exception x) {
x.printStackTrace();
}

最佳答案

CP437编码需要8位来存储,我执行你的代码发现一个字节存储的值是-112,对应144的É超出了标准字节的范围(-127到128)。将其转换为无符号或正值以获得正确的结果,使用以下代码转换为无符号值:

public static int unsignedToBytes(byte b) {
return b & 0xFF;
}

打印这个值:

System.out.println(unsignedToBytes((byte) ba2[0]));

给出 144,这是您需要的值。

关于java OutputStreamWriter 和 CP437,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253120/

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