我正在尝试使用 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>?
答案 0 :(得分:0)
您要做的是unescapeHtml4
。
所以
System.out.println("NORMALIZED: " + StringEscapeUtils.unescapeHtml4(notNormalized));
打印
NORMALIZED: c'è
不幸的是,&apos
is not an HTML 4 entity因此无法使用此工具进行转义。您可以&apos
使用è
,但{{1}}不能使用{{1}}。你必须混合搭配。