0

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

我的代码中有以下情况:

String notNormalized = "c'è";

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

因此,首先我声明了notNormalized字段(至少在我的脑海中)必须表示一个未标准化的字符串,该字符串包含一个由'表示的撇号字符和一个由è表示的重音元音(应该是è字符)

然后我尝试在没有规范化的情况下打印它,我认为这是打印c'è字符串及其规范化版本,我希望检索c'è规范化\转换后的字符串。

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

NOT NORMALIZED: c'è
NORMALIZED: c'è

为什么?我错过了什么?怎么了?如何执行此测试并将包含字符的字符串正确转换为&apos

4

1 回答 1

0

你要做的是unescapeHtml4.

所以

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

哪个打印

NORMALIZED: c'è

不幸的是,&apos它不是 HTML 4 实体,因此无法使用此工具进行转义。您可以unescapeXml用于 ,&apos但不能用于&egrave。你必须混合搭配。

于 2015-03-17T17:23:55.457 回答