Java 当使用HTML实体转义字符串时,如果使用UTF-8,是否可以安全地跳过Unicode 127以上的编码字符?
在HTML中输出字符串时,出于可以理解的原因,必须将特殊字符转义为HTML实体(“&”等) 我已经研究了这方面的两个Java实现: org.apache.commons.lang.StringEscapeUtils.escapeHtml(字符串) net.htmlparser.jericho.CharacterReference.encode(CharSequence) 这两种方法都对Unicode代码点127(0x7F)以上的所有字符进行转义,这实际上是所有非英语字符 这种行为很好,但当字符为非英语(例如,希伯来语或阿拉伯语)时,它生成的字符串是非人类可读的。我已经看到,当Unicode 127以上的字符没有像这样转义时,它们在浏览器中仍能正确呈现-我相信这是因为html页面是UTF-8编码的,因此浏览器可以理解这些字符Java 当使用HTML实体转义字符串时,如果使用UTF-8,是否可以安全地跳过Unicode 127以上的编码字符?,java,html,encoding,escaping,html-entities,Java,Html,Encoding,Escaping,Html Entities,在HTML中输出字符串时,出于可以理解的原因,必须将特殊字符转义为HTML实体(“&”等) 我已经研究了这方面的两个Java实现: org.apache.commons.lang.StringEscapeUtils.escapeHtml(字符串) net.htmlparser.jericho.CharacterReference.encode(CharSequence) 这两种方法都对Unicode代码点127(0x7F)以上的所有字符进行转义,这实际上是所有非英语字符 这种行为很好,但当字符为
我的问题:在转义HTML实体时,如果我的网页是UTF-8编码的,我可以安全地禁用转义代码点127以上的Unicode字符吗?如果您在mime类型标题中发送编码:
Content-Type: text/html; charset=utf-8
然后浏览器会将源代码解释为UTF-8,您可以将所有这些字符作为正常的UTF-8编码字节发送
或者,您可以在HTML页面的标题中指定编码,如下所示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
您只需要在两种情况下使用HTML实体:
- 转义在HTML中具有特殊含义的字符(例如
<meta charset="utf-8">