我正在为分配分配霍夫曼压缩算法。 除了将二进制转换为字节然后在解压缩时再次返回之外,我一切正常。
压缩时,我会附加所有代码以获取如下所示的字符串,例如:“ 01001100 10000000”
现在,我希望以字节数组的形式使用:{76,-128}和Byte.parseByte("01001100", 2)
。
我最终得到一个文本文件,该文件以ANSI L€
编码
当我的文本文件位于s.getBytes("Cp1252")
上方时,问题在于解压缩。
我得到了字节数组{76,63},因此我无法检索解码我的压缩所需的二进制代码10000000。
我希望得到{76,-128},所以我可以将其转换为二进制并用原始消息替换。
答案 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
)。