我从一个我认为是简单的测试中得到了一些意想不到的结果。运行以下命令后:
byte [] bytes = {(byte)0x40, (byte)0xE2, (byte)0x56, (byte)0xFF, (byte)0xAD, (byte)0xDC};
String s = new String(bytes, Charset.forName("UTF-8"));
byte[] bytes2 = s.getBytes(Charset.forName("UTF-8"));
bytes2 是一个 14 元素长的数组,与原始数组(字节)完全不同。有没有办法进行这种转换并保留原始分解为字节?
最佳答案
Is there a way to do this sort of conversion and retain the original decomposition to bytes?
嗯,这对我来说看起来不像是有效的 UTF-8,所以我对它没有往返并不感到惊讶。
如果您想以可逆方式将任意二进制数据转换为文本,请使用 base64,例如通过this public domain encoder/decoder .
关于Java:字符串到字节数组的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950970/