Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用StringEscapeUtils.escapeHtml()时排除五个基本XML实体_Java_Html_Stringescapeutils - Fatal编程技术网

Java 使用StringEscapeUtils.escapeHtml()时排除五个基本XML实体

Java 使用StringEscapeUtils.escapeHtml()时排除五个基本XML实体,java,html,stringescapeutils,Java,Html,Stringescapeutils,我正在尝试使用StringEscapeUtils.escapeHtmlString字符串将网页上的特殊字符转换为HTML实体。但是它也转义了五个基本的XML实体,它们是,、和&,这使得我的HTML无法正确呈现,因为前面提到的字符是转义的 所以我接下来要做的是使用StringEscapeUtils.unescapeXmlString字符串返回',并返回到它们的单字符形式 还有别的办法吗?当StringEscapeUtils进行HTML转义时,是否不包括我提到的5个实体?您可以构建自己的转换器: p

我正在尝试使用StringEscapeUtils.escapeHtmlString字符串将网页上的特殊字符转换为HTML实体。但是它也转义了五个基本的XML实体,它们是,、和&,这使得我的HTML无法正确呈现,因为前面提到的字符是转义的

所以我接下来要做的是使用StringEscapeUtils.unescapeXmlString字符串返回',并返回到它们的单字符形式


还有别的办法吗?当StringEscapeUtils进行HTML转义时,是否不包括我提到的5个实体?

您可以构建自己的转换器:

public static final CharSequenceTranslator ESCAPE_HTML4 = new AggregateTranslator(
                    new LookupTranslator(EntityArrays.ISO8859_1_ESCAPE),
                    new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE)
            );
这个特殊的转换器省略了EntityArrays.BASIC_转义数据

因此,它将转换特殊字符,并对HTML标记进行ommit

使用以下命令转换文本变量:

text = ESCAPE_HTML4.translate(text);

为什么要这么做?为什么不使用字符编码,允许所有字符按原样显示?我试图转义的html将作为电子邮件发送。因此,如果接收它的一个具有不同的字符编码,它将显示为?。这就是为什么我试图将所有字符放入html实体表单中。电子邮件也应该包含字符集。除非接收它的人有一个90年代左右的电子邮件客户端,否则消息部分的内容类型应该起作用。当然,您应该向HTML添加适当的元标记。