网站首页 > java教程 正文
本文主要讲述:文件名工具类Apache之org.apache.commons.lang.StringEscapeUtils。
java中转义是指:将某些特殊字符转换为它在特定场景中原来的意义。
转义字符是指无法直接显示的字符。
常见的场景是:
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>
猜你喜欢
- 2024-10-13 Java正则表达式(java正则表达式匹配换行符)
- 2024-10-13 JAVA面试考点合集!常用关键字及修饰符
- 2024-10-13 Java基础入门(Character类)(java character.isletter)
- 2024-10-13 好程序员Java培训分享Java之命名、标示符、变量
- 2024-10-13 JAVA新特性(二)文字块(java文字是什么类型)
- 2024-10-13 “全栈2019”Java第十六章:下划线在数字中的意义
- 2024-10-13 基础教程:Java Character类(java教程 chm)
- 2024-10-13 “全栈2019”Java异常第五章:finally关键字(应用场景)详解
- 2024-10-13 “全栈2019”Java第十四章:二进制、八进制、十六进制
- 2024-10-13 Java零基础程序阅读五(java基础入门课后编程题)
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)