java - 从 javascript 转义 Unicode 到 Java Unicode 的转换

标签 java unicode encoding

我有一个通过 HTTP 请求传入的查询字符串,其中包含以下字符:

%u54E6

我想生成一个包含实际汉字的字符串,以便我可以在应用程序的不同部分使用它,我尝试使用以下代码:

String foo = "%u54E6";
String ufoo = new String(foo.replaceAll("%u([a-zA-Z0-9]{4})", "\\" + "u$1"));
System.out.println("ufoo: " + ufoo);

不幸的是,我得到的只是打印到控制台的值“u54E6”,而不是中文字符。

Java中有没有简单的方法将原始字符串转换为Unicode字符?

最佳答案

您尝试在运行时使用 \u 转义符。这些只是编译时的。相反,您应该能够执行以下操作:

String foo = "%u54E6";
Pattern p = Pattern.compile("%u([a-zA-Z0-9]{4})");
Matcher m = p.matcher(foo);
StringBuffer sb = new StringBuffer();
while (m.find()) {
  m.appendReplacement(sb,
      String.valueOf((char) Integer.parseInt(m.group(1), 16)));
}
m.appendTail(sb);
System.out.println(sb.toString());

关于java - 从 javascript 转义 Unicode 到 Java Unicode 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493576/

相关文章:

unicode - UTF-8、UTF-16 和 UTF-32

python - 如何在 python (3.3) 中使用 unidecode

Java转换UTC/CET时间

Java Servlet Filter - 根据状态修改响应头

python - 如何使 Python 字符串版本不可知

python - 将 JSON 写入文件而不将转义反斜杠写入文件?

encoding - Aptana 3.1.1 - 字符编码

java - 如何让puppet运行java程序?

java - 从外部 JAR 加载没有名称的 JDBC 驱动程序

以 Unicode 字符作为分隔符的 PHP Explode