Java stringescapeutil . escapehtml4作为常规文本



我的目标是在使用StringEscapeUtils.escapeHtml4后将消息的特殊字母显示为常规文本。文本的例子:

<html>
<body>
<p>éô</p>
</body>
</html>

我的预期结果是使所有的HTML标签被转义,但不转义文本,即在这里:éô

代码示例:

String original = "<html><head><\head><>éô";
System.out.println("original: " + original);
String translated = StringEscapeUtils.escapeHtml4(original);
System.out.println("translated: " + translated);
输出:

original: <html><head><head><body>éô
translated: &lt;html&gt;&lt;head&gt;&lt;head&gt;&lt;body&gt;&eacute;&ocirc;

我期望得到:&lt;html&gt;&lt;head&gt;&lt;head&gt;&lt;body&gt;éô

我想我找到了这里提到的解决方案:带有重音字母的语言中的转义HTML

通过创建一个自定义转义方法,该方法将只使用两个查找翻译器:

public static final CharSequenceTranslator ESCAPE_HTML4_CUSTOM =
new AggregateTranslator(
new LookupTranslator(EntityArrays.BASIC_ESCAPE()),
new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE())
);

原方法StringEscapeUtils.escapeHtml4中有:

public static final CharSequenceTranslator ESCAPE_HTML4 = 
new AggregateTranslator(
new LookupTranslator(EntityArrays.BASIC_ESCAPE()),
new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE()),
new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE())
);

相关内容

  • 没有找到相关文章

最新更新