为什么我不能使用org.apache.commons.lang.StringEscapeUtils将包含该字符串的字符串转换为& apos和è?

时间:2015-03-17 17:15:09

标签: java string escaping stringescapeutils

我正在尝试使用 org.apache.commons.lang.StringEscapeUtils 类进行一些实验,但我发现了一些困难。

我的代码中有以下情况:

String notNormalized = "c'è";

System.out.println("NOT NORMALIZED: " + notNormalized);
System.out.println("NORMALIZED: " + StringEscapeUtils.escapeJava(notNormalized));

首先我声明了 notNormalized 字段(至少在我的脑海中)必须表示一个非规范化的字符串,其中包含由撇号字符> 和è代表的重音元音(应该是è字符)

然后我尝试打印它而没有标准化,我认为打印c'è字符串及其标准化版本,我希望检索c'è normalized \ converted string。

但问题是我仍然获得相同的输出,实际上这是我在控制台中获得的输出:

NOT NORMALIZED: c'è
NORMALIZED: c'è

为什么呢?我错过了什么?怎么了?如何执行此测试并将包含字符的字符串正确转换为&amp; << / strong>?

1 个答案:

答案 0 :(得分:0)

您要做的是unescapeHtml4

所以

System.out.println("NORMALIZED: " + StringEscapeUtils.unescapeHtml4(notNormalized));

打印

NORMALIZED: c&apos;è

不幸的是,&apos is not an HTML 4 entity因此无法使用此工具进行转义。您可以&apos使用&egrave,但{{1}}不能使用{{1}}。你必须混合搭配。