【问题标题】:Map value encode and decode映射值编码和解码
【发布时间】:2015-01-07 19:27:03
【问题描述】:

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

    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);

【问题讨论】:

  • 呃,你为什么要这么做?
  • 尝试将System.out.println(s1) 添加到您的程序中,看看它会打印什么...您希望map.toString() 返回什么?如果地图中有多个条目,您希望它会做什么?
  • 你想从你的地图制作 json 字符串,反之亦然吗?

标签: java dictionary utf-8 decode encode


【解决方案1】:

map.toString() 将使用toString()toString() 表示,它不包含任何有关其内容的信息:它指的是字节数组的标识哈希。

不可能从 byte[].toString() 恢复 byte[] 内容,或者在您的情况下,从地图的 toString() 恢复。

【讨论】:

  • 还有其他方法可以实现吗?我需要再次读取地图并解码地图值。
  • 如果你想提取byte[]信息,你将不得不将Map转换为String除了String之外的其他方式,或者你要必须存储 byte[] 以外的其他内容。
猜你喜欢
  • 1970-01-01
  • 2021-05-26
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
相关资源
最近更新 更多