java实现HTML标签转义和反转义(StringEscapeUtils)

转义:有时需要对带有格式的长文本(如个人文章或评论等)进行转义后存储到数据库表中。

      例如:String EsHtml="<p>我的<br/>评论</p>";

                 转义后为"&lt;p&gt;我的&lt;br/&gt;评论&lt;/p&gt"

反转义:数据库中存储的转义后的文本有时需要反转至页面。

      例如:字符串: "&lt;p&gt;我的&lt;br/&gt;评论&lt;/p&gt"

                 反转义后为"<p>我的<br/>评论</p>"

        在apache的工具包common-lang中有StringEscapeUtils工具类,可以对HTML标签进行转义和反转义,但是该工具类的转义方法escapeHtml对于中文字符兼容性不是很好,因此需要自定义方法对特殊字符进行处理。

1、HTML标签转义:

      public class test {
      public static void main(String[] args) {
           StringHTMLText="<p>我的<br/>评论</p>";
           Stringtext=htmlEncode(HTMLText);
           System.out.println(text);
      }
      public static String htmlEncode(String source) {
        if(source == null) {
           return "";
        }
       String html = "";
       StringBuffer buffer = new StringBuffer();
        for(int i = 0; i < source.length(); i++) {
           char c = source.charAt(i);
           switch (c) {
           case '<':
               buffer.append("<");
               break;
           case '>':
               buffer.append(">");
               break;
           case '&':
               buffer.append("&");
               break;
           case '"':
               buffer.append(""");
               break;
           case 10:
           case 13:
               break;
           default:
               buffer.append(c);
           }
        }
       html = buffer.toString();
       return html;
    }
}

输出结果为:&lt;p&gt;我的&lt;br/&gt;评论&lt;/p&gt;



2、HTML标签反转义:

public static void main(String[] args) {
	String HTMLText="<p>我的<br/>评论</p>";
	System.out.println(StringEscapeUtils.unescapeHtml(HTMLText));
}
public static void main(String[] args) {
	String HTMLText="<p>我的<br/>评论</p>";
	System.out.println(StringEscapeUtils.unescapeHtml(HTMLText));
}

输出结果为:<p>我的<br/>评论</p>,

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值