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

Character encoding 如何在Java中用数字字符引用转义字符串,character-encoding,escaping,html-entities,character-reference,Character Encoding,Escaping,Html Entities,Character Reference,您好,谢谢您阅读我的帖子 Apache Commons的StringEscapeUtils.escapeHtml3()和StringEscapeUtils.escapeHtml4()函数特别允许将字符串中带有锐字符(如é,θ…)的字符转换为 字符实体引用的格式为&name;其中name是区分大小写的字母数字字符串 如何获取具有数字字符引用的给定字符串的转义字符串(&#nnnn;或&#xhhh;其中nnnn是十进制形式的代码点,hhhh是十六进制形式的代码点) 实际上,我需要为XML文档转义字符串

您好,谢谢您阅读我的帖子

Apache Commons的StringEscapeUtils.escapeHtml3()和StringEscapeUtils.escapeHtml4()函数特别允许将字符串中带有锐字符(如é,θ…)的字符转换为 字符实体引用的格式为&name;其中name是区分大小写的字母数字字符串

如何获取具有数字字符引用的给定字符串的转义字符串(&#nnnn;或&#xhhh;其中nnnn是十进制形式的代码点,hhhh是十六进制形式的代码点)

实际上,我需要为XML文档转义字符串,因为它不知道诸如é;,&阿格拉夫;等等


致以最诚挚的问候。

为了解决这个问题,我编写了一个方法,该方法将字符串作为参数,并在该字符串中用相应的数字字符引用替换字符实体引用(如
é;

我使用了W3C参考文献列表:


注:如果能够将另一个参数传递给
StringEscapeUtils.escapeHtml4()
方法,告诉它我们是希望在输出字符串中使用字符实体引用还是数字字符引用,那就太好了…

为了解决这个问题,我编写了一个方法,将字符串作为参数,并在这个字符串中替换,字符实体引用(如
é;
)及其相应的数字字符引用(本例中为
&233;

我使用了W3C参考文献列表:


注:如果能够将另一个参数传递给
StringEscapeUtils.escapeHtml4()
方法,告诉它我们是希望在输出字符串中使用字符实体引用还是数字字符引用,那就太好了…

创建
字符转换器

CharacterTranslator XML_ESCAPE = StringEscapeUtils.ESCAPE_XML11.with(
    NumericEntityEscaper.between(0x7f, Integer.MAX_VALUE) );
并使用它:

XML_ESCAPE.translate(…)

创建您的
字符转换器

CharacterTranslator XML_ESCAPE = StringEscapeUtils.ESCAPE_XML11.with(
    NumericEntityEscaper.between(0x7f, Integer.MAX_VALUE) );
并使用它:

XML_ESCAPE.translate(…)

非常感谢。你帮我节省了很多时间!非常感谢。你帮我节省了很多时间!