网站首页 > 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基础入门课后编程题)
你 发表评论:
欢迎- 最近发表
-
- Mozilla Firefox 139 Beta已上线 提供更快的HTTP/3上传速度
- Win8专享拷贝能暂停,Win7其实也可以
- ASP.NET利用WEBUPLOADER实现超大文件分片上传、断点续传
- 河汉大大的《断点续传》-------黑暗哨兵和向导的绝美爱恋
- 用C# 实现断点续传 (HTTP)
- 开源断点续传下载软件FDM获推6.21.0.5639版更新
- 前端大文件切片上传,断点续传、秒传等解决方案,VUE中使用实例
- SpringBoot 实战:文件上传之秒传、断点续传、分片上传
- 一文搞定SpringBoot分片上传、断点续传、大文件极速秒传功能
- SPRING-BOOT实现HTTP大文件断点续传分片下载
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)