将Java的byte[]解释为字符串
将Java的byte[]解释为字符串
我有一个字节数组b:
b = [-98, -99]
我需要将这段数据传递给一个函数。该函数需要一个字符串(不能更改)。如何让Java将b中的原始二进制数据解释为字符串,而不改变b中的任何位?
编辑
这不是重复的:
Converting byte array to String (Java)
因为数组b由位[1001 1110 1001 1101]或[9E9D]组成。如果我使用
String str = new String(b, "Cp1252")
Cp1252编码没有该位序列1001 1101或9D的值。因此,此函数的结果为str =“ž?”。二进制形式为[1001 1110 0011 1111]或[9E3F]。请注意,该函数已更改了我的位,这基本上损坏了我的数据。
我认为在C++中会使用reinterpret cast来完成这项工作,但在java中不存在这样的东西。谢谢。
admin 更改状态以发布 2023年5月21日