如何在java中将此十六进制字符串转换为unicode?

时间:2018-04-25 04:50:22

标签: java string unicode hex

我从网络服务获得以下结果:

 "\\x52\\x50\\x1F\\x1F\\x44\\x46\\x57\\x47"

我需要以unicode字符获取字符串,我认为这将是:

"\u0052\u0050\u001F\u001F\u0044\u0046\u0057\u0047"

即。 “RPDFWG”

我无法使用replace("\\x", "\u00");,因为它说“\ u00”不是有效的unicode

1 个答案:

答案 0 :(得分:0)

此代码适用于我:

try {
  String orig = "\\x52\\x50\\x1F\\x1F\\x44\\x46\\x57\\x47";
  byte[] bytes = new byte[orig.length() / 4];

  for (int i = 0; i < orig.length(); i += 4) {
    bytes[i / 4] = (byte) Integer.parseInt(orig.substring(i + 2, i + 4), 16);
  }

  System.out.println(new String(bytes, "UTF-8"));
}
catch (Exception e) {
  e.printStackTrace();
}

您可能希望将编码更改为ISO-8859-1,或仅仅ASCII - 我无法从您的示例中了解此处的编码相关内容。