Java将8位字符串二进制表示形式转换为字节并再次返回

时间:2019-10-17 05:27:00

标签: java

我正在为分配分配霍夫曼压缩算法。 除了将二进制转换为字节然后在解压缩时再次返回之外,我一切正常。

压缩时,我会附加所有代码以获取如下所示的字符串,例如:“ 01001100 10000000”

现在,我希望以字节数组的形式使用:{76,-128}和Byte.parseByte("01001100", 2)

我最终得到一个文本文件,该文件以ANSI L€编码

当我的文本文件位于s.getBytes("Cp1252")上方时,问题在于解压缩。

我得到了字节数组{76,63},因此我无法检索解码我的压缩所需的二进制代码10000000。

我希望得到{76,-128},所以我可以将其转换为二进制并用原始消息替换。

1 个答案:

答案 0 :(得分:0)

要将String str1转换为byte[]

byte[] bytes = str1.getBytes(StandardCharsets.ISO_8859_1);

要将bytes转换回String

String str2 = new String(bytes, StandardCharsets.ISO_8859_1);

除了StandardCharsets.ISO_8859_1之外,您还可以使用其他编码,也可以使用字符集名称(String)。