如何在Java中使用数字字符引用转义字符串

问题描述:

您好,感谢您阅读我的文章。如何在Java中使用数字字符引用转义字符串

阿帕奇共享StringEscapeUtils.escapeHtml3()和StringEscapeUtils.escapeHtml4()函数允许,特别是字符转换为急性(如E,A ...)在一个串入其中有 字符实体引用格式&name;其中name是区分大小写的字母数字字符串。

我怎样才能得到一个给定的字符串,数字字符引用,而不是转义字符串(&为#nnnn;或& #xhhhh;其中NNNN是十进制形式的代码点,HHHH是十六进制形式的代码点) ?

我实际上需要为XML文档转义字符串,它不知道这样的实体,例如& eacute; & agrave;等等。

此致敬意。

为了解决这个问题,我写这需要一个字符串作为参数,并替换,在该串的方法,字符实体引用(如é)与其对应的数字字符引用(é在这种情况下)。

我用引用这个W3C名单:http://www.sagehill.net/livedtd/xhtml1-transitional/xhtml-lat1.ent.html

诺塔:这将是巨大的,可以到另一个参数传递给StringEscapeUtils.escapeHtml4()方法来判断是否我们想在字符实体引用或数字字符引用输出字符串...

创建CharacterTranslator

CharacterTranslator XML_ESCAPE = StringEscapeUtils.ESCAPE_XML11.with(
    NumericEntityEscaper.between(0x7f, Integer.MAX_VALUE)); 

,并使用它:

XML_ESCAPE.translate(…)