1 import org.apache.commons.lang.StringEscapeUtils; 2 import org.junit.Test; 3 /** 4 * ClassName: EscapeString 5 * @Description <描述> StringEscapeUtils類的轉義與反轉義方法 6 * @author wang 7 * @since 2019年2月18日 下午4:28:18 8 */ 9 public class EscapeString { 10 static{ 11 /* apache工具包common-lang中有一個很有用的處理字符串的工具類, 12 其中之一就是StringEscapeUtils,這個工具類是在2.3版本以上加上的去的, 13 利用它能很方便的進行html,xml,java等的轉義與反轉義,而且還能對關鍵字符串進行處理預防SQL注入, 14 不過好像common-lang3.0以后我看着好像沒這個處理SQL語句的方法了,想用的話前提時引入對應的jar包*/ 15 } 16 17 /** 18 * 19 * <方法描述> 利用StringEscapeUtils對字符串進行各種轉義與反轉義(Java) 20 * void 21 * @throws 22 * @author wang 23 * @since 2019年2月18日 下午4:31:57 24 */ 25 @Test 26 public void StringEscapeUtilsTest (){ 27 String sql="1' or '1'='1"; 28 System.out.println("防SQL注入:"+StringEscapeUtils.escapeSql(sql)); //防SQL注入 29 30 System.out.println("轉義HTML,注意漢字:"+StringEscapeUtils.escapeHtml("<font>wang朵 duo</font>")); //轉義HTML,注意漢字 31 System.err.println("反轉義HTML:"+StringEscapeUtils.unescapeHtml("<font>wang朵 duo</font>")); //反轉義HTML 32 33 System.out.println("轉成escapeJava編碼:"+StringEscapeUtils.escapeJava("王朵朵")); //轉義成Unicode編碼 34 System.out.println("反轉義unescapeJava編碼:"+StringEscapeUtils.unescapeJava("王朵朵")); //轉義成Unicode編碼 35 36 System.out.println("轉義XML:"+StringEscapeUtils.escapeXml("<name>王朵朵</name>")); //轉義xml 37 System.err.println("反轉義XML:"+StringEscapeUtils.unescapeXml("<name>王朵朵</name>")); //轉義xml 38 39 String str = "中國"; 40 System.out.println("用escapeJavaScript方法轉義之后的字符串為:"+StringEscapeUtils.escapeJavaScript(str)); 41 System.out.println("用unescapeJavaScript方法反轉義之后的字符串為:"+StringEscapeUtils.unescapeJavaScript(StringEscapeUtils.escapeJavaScript(str))); 42 43 //java中轉義字符(回車\r\n)的替換 反轉義 44 //現在要把其中的 \r\n 替換為正常的回車 45 //可以用replaceAll ("\\\\r\\\\n", "\n");因為在字符在Java中實際是這樣存儲的"hello \\r\\n world", 而 '\' 又需要轉義成 '\\'才行。 46 String msg = "hello \r\nworld"; 47 System.out.println(msg); 48 } 49 50 /* 輸出結果如下: 51 * 防SQL注入:1'' or ''1''=''1 52 * 轉義HTML,注意漢字:<font>wang朵 duo</font> 53 * 反轉義HTML:<font>wang朵 duo</font>轉成escapeJava編碼:\u738B\u6735\u6735 54 * 55 * 反轉義unescapeJava編碼:王朵朵 56 * 轉義XML:<name>王朵朵</name> 57 * 反轉義XML:<name>王朵朵</name> 58 * 用escapeJavaScript方法轉義之后的字符串為:\u4E2D\u56FD 59 * 用unescapeJavaScript方法反轉義之后的字符串為:中國 60 * hello 61 * world 62 */ 63 }