转义处理

commons.lang

StringEscapeUtils 处理字符转义与反转义

 

 

common.utils;

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import org.springframework.web.util.HtmlUtils;

public class StringUtilsTest {

    @Test
    public void test() {
        String str="你好呀,<input>这里真不错!";
        
//       ---JavaScript
//        String javascriptStr="<script>alert('你好111')</script>";
//    	System.out.println(StringEscapeUtils.escapeJavaScript(javascriptStr));
//    	System.out.println(StringEscapeUtils.unescapeJavaScript(javascriptStr));
        //输出 <script>alert(\'111\')</script>
//    	<script>alert('111')</script>
//        ----SQL
//        StringBuffer sql = new StringBuffer("select * from inf_moderator_info info  where 1=1  ");
//        if(!CommUtil.isEmpty(keyWord)){
//        String keyWord = " ' or 1=你好1 '";
//        String keyWord = "很好%";
//        System.out.println(StringEscapeUtils.escapeSql(keyWord));
//        sql.append(" and info.introduction like '%" + StringEscapeUtils.escapeSql(keyWord) + "%'");
//        System.out.println(sql);
    	//输出 '' or 1=1 ''
    	
//    	--html
//    	String html="<A>你好dddd</A>";
//    	System.out.println(StringEscapeUtils.escapeHtml(html));
//    	System.out.println(StringEscapeUtils.unescapeHtml(html));
    	
//    	--escapeJava/unescapeJava 把字符串转为unicode编码
//    	String java="你好dddd";
//    	System.out.println(StringEscapeUtils.escapeJava(java));
//    	System.out.println(StringEscapeUtils.unescapeJava(java));
//        \u4F60\u597Ddddd
//        你好dddd
    	
//    	String xml="你好dddd";
//    	System.out.println(StringEscapeUtils.escapeXml(xml));
//    	System.out.println(StringEscapeUtils.unescapeXml(xml));
//    	&#20320;&#22909;dddd
//        你好dddd
        
        
    	String a = "<html>吃饭</html>' or 1=1 '<input></input>";
		System.out.println(StringEscapeUtils.escapeHtml(a));
//		a=StringEscapeUtils.escapeHtml(a);
//		System.out.println(StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(a)));
//		System.out.println(HtmlUtils.htmlEscape(a));
		System.out.println(HtmlUtils.htmlUnescape(a));
		System.out.println(StringEscapeUtils.unescapeHtml(HtmlUtils.htmlEscape(a)));
		
//		&lt;html&gt;&#21507;&#39277;&lt;/html&gt;&lt;input&gt;&lt;/input&gt;
//		<html>吃饭</html><input></input>
//		&lt;html&gt;吃饭&lt;/html&gt;&lt;input&gt;&lt;/input&gt;
//		<html>吃饭</html><input></input>
		
		
//        System.out.println(escapeStr(str));
    } 
    public static String escapeStr(String str) {
		if (StringUtils.isEmpty(str)) {
			return "";
		}
		str = StringEscapeUtils.escapeSql(str);
		str = StringEscapeUtils.escapeHtml(str);
//		str = StringEscapeUtils.escapeJava(str);
//		str = StringEscapeUtils.escapeJavaScript(str);
		return str;
	}

	/**
	 * 字符反转义
	 * 
	 * @param str
	 * @return
	 */
	public static String unescapeStr(String str) {
		if (StringUtils.isEmpty(str)) {
			return "";
		}
		str = StringEscapeUtils.unescapeHtml(str);
		str = StringEscapeUtils.unescapeJava(str);
		str = StringEscapeUtils.unescapeJavaScript(str);
		return str;
	}
}

 

 

 

 

 

你可能感兴趣的:(转义处理)