如何使用字节数组创建所需的字符串?

时间:2011-10-01 07:52:42

标签: android string bytearray

我有以下字节数组:

byte[] bytes = new byte[] { (byte) -61, (byte) -61};

首先我使用以下行将其转换为String:

strResult = new String(bytes, "ISO_8859_1");

然后我使用以下代码将其转换回字节数组:

byte[] myBytes = strResult.getBytes();

myBytes的内容是[-61,-125,-61,-125]

我测试了“US-ASCII”和“UTF-8”字符集。每一个都返回一个不同的字符串,它们都不是[-61,-61]。

如何创建包含[-61,-61]字节的字符串?

我的意思是当我使用getBytes()时我想要一个字符串;它返回[-61,-61]个字节。我该如何创建它?

1 个答案:

答案 0 :(得分:0)

您应该使用相同的编码再次转换回来:

byte[] myBytes = strResult.getBytes("ISO_8859_1");

基本上字符串维护最初用于创建它的编码记录 - 它始终只是一系列UTF-16代码单元。如果未指定将字符串转换为字节数组时要使用的编码,则使用平台默认编码。

请注意,如果您尝试将任意二进制数据编码为文本(即您没有解码某些特定编码中真正文本的内容),那么您不应该使用这些方法全部 - 您应该使用Base64安全地进行编码和解码。