Java 中 HTML 转义与反转义工具类 输出: 如您在阅读中发现不足,欢迎留言!!!代码如下
import org.apache.commons.lang3.StringUtils; /**  * 转义和反转义工具类  *  */ public class EscapeUtil { private static final char[][] TEXT = new char[64][]; static { for (int i = 0; i < 64; i++) {             TEXT[i] = new char[]{(char) i}; } // 单引号         TEXT['''] = "'".toCharArray(); // 单引号         TEXT['"'] = """.toCharArray(); // &符         TEXT['&'] = "&".toCharArray(); // 小于号         TEXT['<'] = "<".toCharArray(); // 大于号         TEXT['>'] = ">".toCharArray(); } /**      * 转义文本中的HTML字符为安全的字符      *      * @param text 被转义的文本      * @return 转义后的文本      */ public static String escape(String text) { return encode(text); } /**      * 还原被转义的HTML特殊字符      *      * @param content 包含转义符的HTML内容      * @return 转换后的字符串      */ public static String unescape(String content) { return decode(content); } /**      * 清除所有HTML标签,但是不删除标签内的内容      *      * @param content 文本      * @return 清除标签后的文本      */ public static String clean(String content) { return new HTMLFilter().filter(content); } /**      * Escape编码      *      * @param text 被编码的文本      * @return 编码后的字符      */ private static String encode(String text) { int len; if ((text == null) || ((len = text.length()) == 0)) { return ""; }         StringBuilder buffer = new StringBuilder(len + (len >> 2)); char c; for (int i = 0; i < len; i++) {             c = text.charAt(i); if (c < 64) {                 buffer.append(TEXT[c]); } else {                 buffer.append(c); } } return buffer.toString(); } /**      * Escape解码      *      * @param content 被转义的内容      * @return 解码后的字符串      */ public static String decode(String content) { if (StringUtils.isEmpty(content)) { return content; }          StringBuilder tmp = new StringBuilder(content.length()); int lastPos = 0, pos = 0; char ch; while (lastPos < content.length()) {             pos = content.indexOf("%", lastPos); if (pos == lastPos) { if (content.charAt(pos + 1) == 'u') {                     ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16);                     tmp.append(ch);                     lastPos = pos + 6; } else {                     ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16);                     tmp.append(ch);                     lastPos = pos + 3; } } else { if (pos == -1) {                     tmp.append(content.substring(lastPos));                     lastPos = content.length(); } else {                     tmp.append(content.substring(lastPos, pos));                     lastPos = pos; } } } return tmp.toString(); } } 测试用例
public static void main(String[] args) {     String html = "<script>alert(1);</script>";     System.out.println(EscapeUtil.clean(html));     System.out.println(EscapeUtil.escape(html));     System.out.println(EscapeUtil.unescape(html)); } alert(1); <script>alert(1);</script> <script>alert(1);</script> 
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
 官方软件产品操作指南 (170)
官方软件产品操作指南 (170)