Amo*_*mos 7 html java encoding escaping html-entities
在HTML中输出字符串时,必须将特殊字符转义为HTML实体("&<>"等),这是可以理解的.
我已经检查了两个这样的Java实现:org.apache.commons.lang.StringEscapeUtils.escapeHtml(String)net.htmlparser.jericho.CharacterReference.encode(CharSequence)
两者都转义Unicode代码点127(0x7F)以上的所有字符,这实际上是所有非英文字符.
这种行为很好,但是当字符是非英语时(例如,希伯来语或阿拉伯语),它产生的字符串是非人类可读的.我已经看到,当Unicode 127之上的字符没有像这样转义时,它们仍然在浏览器中正确呈现 - 我相信这是因为html页面是UTF-8编码的,因此浏览器可以理解这些字符.
我的问题:如果我的网页是UTF-8编码的话,我可以在转义HTML实体时安全地禁用转义代码点127上方的Unicode字符吗?
您只需要在两种情况下使用HTML实体:
<)€ISO-8859-1文档中的符号)鉴于UTF-8可以表示所有Unicode字符,因此仅适用第一种情况.
手动键入HTML时,您可能会发现插入HTML实体的实用性,如果您的编辑器和/或键盘不允许您键入某些字符(更容易键入©而不是尝试找出如何键入实际的© )但是当自动转义文本时,你只需要增加页面大小;-)
我对Java知之甚少,但其他语言有不同的功能来编码特殊字符和所有可能的实体.
| 归档时间: |
|
| 查看次数: |
2158 次 |
| 最近记录: |