为什么同样值的字符串输出的结果不同。

HomeListSpider homeListSpider = new HomeListSpider();
    ArrayList<MainPagePicBean> array = homeListSpider.getMore30Items(url);
    String string1=array.get(0).getUploadTime();
    String string2 = " 1\u4e2a\u6708\u524d\u4e0a\u4f20";
    System.out.println(string1);
    System.out.println(string2);
    System.out.println(new String(string1));
    System.out.println(new String(string1.getBytes(),"GBK"));
    System.out.println(new String(string2.getBytes(),"GBK"));

图片描述

为什么两个同样的字符串输出的j结果不同,以及如何将string1转换成汉字

阅读 2.3k
1 个回答

你的string1应该是被转义了变成了这样String string1 = "1\\u4e2a\\u6708\\u524d\\u4e0a\\u4f20";
如果想正常输出为文字的话,需要转义回来,可以使用Apache commons包 System.out.println(StringEscapeUtils.unescapeJava(string1));就可以正常输出了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题