一尘不染

将转义的Unicode字符转换回实际字符

java unicode

我在Java中的字符串变量中具有以下值,该字符串变量具有如下编码的UTF-8字符

Dodd\u2013Frank

代替

Dodd–Frank

(假设我无法控制如何将此值分配给此字符串变量)

现在如何正确转换(编码)并将其存储回String变量中?

我发现以下代码

Charset.forName("UTF-8").encode(str);

但这会返回ByteBuffer,但我要String返回。

编辑:

一些其他信息。

当我使用System.out.println(str);我得到

Dodd\u2013Frank

我不确定什么是正确的术语(UTF-8或unicode)。


阅读 315

收藏
2020-03-25

共1个答案

一尘不染

尝试

str = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(str);

来自Apache Commons Lang

2020-03-25