Java:字符串到字节数组的转换

标签 java serialization type-conversion marshalling

我从一个我认为是简单的测试中得到了一些意想不到的结果。运行以下命令后:

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/

相关文章:

Java 单元测试返回参数对象

java - 合并或更新持久化对象

c++ - 在 MFC 中序列化为 Unicode 文本文件 - 错误的文件头

c++ - 如何支持 Variant 类型的隐式转换,例如从 int 到 unsigned long?

c# - 如何从 DLL 访问带有接口(interface)的类?

具有逻辑或选择的 Java ENUM

java - 如果我在方法内初始化模型,为什么无法访问模型?

Java 静态变量的序列化问题

java - 更改实例状态不会反射(reflect)在序列化对象中

c# - 显式类型转换的好处?