最近在做全文检索模块功能的测试,发现对于特殊符号的处理还存在很大的问题。
有人说Spring本身提供了对HTML、javascript、sql语句的转码工具类,但是测试了一下发现其HtmlUtils.htmlEscape()对单引号并没做处理,只是转码了以下几个特殊字符:
- &:&
- " :"
- < :<
- > :>
后来采用replace替换为('),IE浏览器里依然没有起到作用,只好在google里测试一下查看源代码,发现其转码成(')
今天看到下面这篇文章才明白:
转:http://blog.huachen.me/single-quote-ie-html-entity
在 (x)HTML 中,一些特殊字符应该进行 HTML 实体转义。
常见的有:&(and)、"(双引号)、'(单引号)、<(小于号)、>(大于号),这些在 (x)HTML 文档内容中应该分别转换成:&、"、'、<<