专业的JAVA编程教程与资源

网站首页 > java教程 正文

100个Java工具类之36:转义工具类Apache之StringEscapeUtils

temp10 2024-10-13 09:34:36 java教程 17 ℃ 0 评论

本文主要讲述:文件名工具类Apache之org.apache.commons.lang.StringEscapeUtils。

java中转义是指:将某些特殊字符转换为它在特定场景中原来的意义。

100个Java工具类之36:转义工具类Apache之StringEscapeUtils

转义字符是指无法直接显示的字符。

常见的场景是:

1、同一字符在不同编码中表达形式不一样。

2、某些特定的字符在不同环境、不同语言中表达形式不一样。

下面演示StringEscapeUtils的用法:

一、转义Unicode编码

//转义为Unicode编码
String escape = StringEscapeUtils.escapeJava("古德猫宁");
输出:\u53E4\u5FB7\u732B\u5B81
//反转义Unicode编码
String unescape = StringEscapeUtils.unescapeJava("\u53E4\u5FB7\u732B\u5B81");
输出:古德猫宁

二、转义SQL

sql注入是网络攻击方式之一,而防止SQL注入的唯一方法是SQL参数化。

escapeSql就提供了sql转义功能,从而实现防止sql注入。

String userId = "000001";
String sql = "select user_name from tab_emp where user_id = " + StringEscapeUtils.escapeSql("'" + userId + "'");
输出:select user_name from tab_emp where user_id = ''000001''

三、转义html脚本

//转义为html脚本
String escapeHtml = StringEscapeUtils.escapeHtml("<div>Hello World!</div>");
输出:<div>Hello World!</div>
//反转义html脚本
String unescapeHtml = StringEscapeUtils.unescapeHtml("<div>Hello World!</div>");
输出:<div>Hello World!</div>

四、转义JS脚本

//转义为JS脚本
String escapeJS = StringEscapeUtils.escapeJavaScript("<script type=\"text/javascript\">alert('哈哈')<script>");
输出:<script type=\"text\/javascript\">alert(\'\u54C8\u54C8\')<script>
//反转义JS脚本
String unescapeJS = StringEscapeUtils.unescapeJavaScript("<script>alert(\'哈哈\')<script>");
输出:<script>alert('哈哈')<script>

五、转义CSV

String escapeCsv = StringEscapeUtils.escapeCsv("He said \"'I love you'\"");
输出:"He said ""'I love you'"""
String unescapeCsv = StringEscapeUtils.unescapeCsv("\"He said \"\"'I love you'\"\"\"");
输出:He said "'I love you'"

六、转义XML

//转义为xml脚本
String escapeXml = StringEscapeUtils.escapeXml("<port>8080</port>");
输出:<port>8080</port>
//反转义xml脚本
String unescapeXml = StringEscapeUtils.unescapeXml("<port>8080</port>");
输出:<port>8080</port>

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表