在不编码的情况下将字符串转换为字节数组/从字节数组转换

M P*_*ips 4 java string data-conversion

我有一个通过网络连接读取的字节数组,我需要将其转换为没有任何编码的字符串,也就是说,只需将每个字节视为字符的低端并将高端保留为零。我还需要做相反的事情,我知道角色的高端将始终为零。

搜索网络会产生几个类似的问题,这些问题都得到了表明必须更改原始数据源的答复。这不是一个选项,所以请不要建议。

这在 C 中是微不足道的,但 Java 似乎要求我编写自己的转换例程,这可能非常低效。有没有我错过的简单方法?

Tom*_*get 5

不,你没有错过任何东西。没有简单的方法可以做到这一点,因为Stringchar用于文本。您显然不想将您的数据作为文本处理——如果它不是文本,这将是完全有意义的。你可以按照你提议的方式去做。

另一种方法是假设字符编码允许任意字节值 (0-255) 的任意序列。ISO-8859-1 或 IBM437 都符合条件。(Windows-1252 只有 251 个代码点。UTF-8 不允许任意序列。)如果您使用 ISO-8859-1,结果字符串将与您的困难方式相同。

至于效率,处理字节数组的最有效方法是将其保留为字节数组。