Java 地图值编码和解码

Java 地图值编码和解码,java,dictionary,utf-8,decode,encode,Java,Dictionary,Utf 8,Decode,Encode,我需要对地图值进行编码,然后重新解码。下面的代码不解码该值 byte[] bytes = "This,is,test".getBytes("UTF-8"); Map<String, Object> map = new HashMap<String,Object>(); map.put("description",bytes); String s1= map.toString(); String s2[]=s1.substring(

我需要对地图值进行编码,然后重新解码。下面的代码不解码该值

    byte[] bytes = "This,is,test".getBytes("UTF-8");
    Map<String, Object> map = new HashMap<String,Object>();
    map.put("description",bytes);

    String s1= map.toString();
    String s2[]=s1.substring(1,s1.length()-1).split("=");
    String string1 = new String(s2[1].getBytes(), "UTF-8");
    System.out.println(string1);
byte[]bytes=“这就是测试”。getBytes(“UTF-8”);
Map Map=newhashmap();
map.put(“说明”,字节);
字符串s1=map.toString();
字符串s2[]=s1.substring(1,s1.length()-1).split(“”);
String string1=新字符串(s2[1].getBytes(),“UTF-8”);
系统输出打印LN(string1);
map.toString()
将使用
toString()
表示的
字节[]
,它不包含任何关于其内容的信息:它指的是字节数组的标识哈希


无法从
byte[].toString()
中恢复
byte[]
内容,或者在您的情况下,无法从映射的
toString()
中恢复内容。

Uhm,您到底为什么要这样做?请尝试将
System.out.println(s1)
添加到您的程序中,查看它打印出了什么。。。您希望
map.toString()
返回什么?如果映射中有多个条目,您希望它会做什么?您希望从映射中生成json字符串,反之亦然?还有其他方法可以实现吗?我需要再次读取映射并解码映射值。如果您想提取
字节[]
信息,您必须将
映射
转换为
字符串
映射.toString()
之外的其他方式,或者必须存储
字节[]
以外的内容。