Java转义工具类StringEscapeUtils的学习笔记

前言

​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的DateUtil等等,StringEscapeUtils也是其中的一员。

​ StringEscapeUtils 是在java.commons.lang3的2.0 版本中加入的工具类,在3.6版本中被标注为@deprecated,表明在之后的版本中则为过时状态,之后StringEscapeUtils类被移到java.commons.text包下。

依赖

        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-text --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-text</artifactId><version>1.8</version></dependency>

功能用途

StringEscapeUtils的主要功能就是为Java,Java Script,Html,XML进行转义与反转义。

  • escapeJava(String input) / unescapeJava(String unionCodeString) 将输入字符串转为unicode编码 / 将 unicode字符串转为utf-8 格式的字符串
  • escapeHtml4(String input) / unescapeHtml4(String input) 转义/反转义html脚本
  • escapeEcmaScript(String input) / unescapeEcmaScript(String input) 转义/反转义js脚本
  • escapeXml(String input) / unescapeXml(String input) 转义/反转义xml脚本

除了列出的几个较常用的方法,还有escapeJson(String input) / unescapeJson(String input)、escapeCsv(String input) / unescapeCsv(String input) 等等。

示例

执行例子如下:

import org.apache.commons.text.StringEscapeUtils;
import org.junit.Test;/*** @author liuqian* @date 2018/4/3 16:27*/
public class EscapeTest {@Testpublic void escapeTest() {System.out.println("转义/反转义Java字符串");String javaString = "\"这是Java\":\"字符串\"";System.out.println("原字符串: " + javaString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeJava(javaString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeJava(StringEscapeUtils.escapeJava(javaString)));System.out.println(StringEscapeUtils.unescapeJson(StringEscapeUtils.escapeJava(javaString)));System.out.println(StringEscapeUtils.unescapeJava(StringEscapeUtils.escapeJson(javaString)));System.out.println("-------------------------------------------------------------");System.out.println("转义/反转义Json字符串");String jsonString = "{\"keyword\": \"这是Json字符串\"}";System.out.println("原字符串: " + jsonString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeJson(jsonString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeJson(StringEscapeUtils.escapeJson(jsonString)));System.out.println("-------------------------------------------------------------");//除了html4还有html3等格式System.out.println("转义/反转义Html字符串");String htmlString = "<strong>加粗字符</strong>";System.out.println("原字符串: " + htmlString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeHtml4(htmlString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeHtml4(StringEscapeUtils.escapeHtml4(htmlString)));System.out.println("-------------------------------------------------------------");//除了xml10还有xml11等格式System.out.println("转义/反转义xml字符串");String xmlString = "<xml>\"xml字符串\"</xml>";System.out.println("原字符串: " + xmlString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeXml10(xmlString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeXml(StringEscapeUtils.escapeXml10(xmlString)));System.out.println("-------------------------------------------------------------");System.out.println("转义/反转义csv字符串");String csvString = "1997,Ford,E350,\"Super, luxurious truck\"";System.out.println("原字符串: " + csvString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeCsv(csvString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeCsv(StringEscapeUtils.escapeCsv(csvString)));System.out.println("-------------------------------------------------------------");System.out.println("转义/反转义Java Script字符串");String jsString = "<script>alert('1111')</script>";System.out.println("原字符串: " + jsString);System.out.print("转义后:");System.out.println(StringEscapeUtils.escapeEcmaScript(jsString));System.out.print("反转义后:");System.out.println(StringEscapeUtils.unescapeEcmaScript(StringEscapeUtils.escapeEcmaScript(jsString)));}
}

运行结果如下:

转义/反转义Java字符串
原字符串: "这是Java":"字符串"
转义后:\"\u8FD9\u662FJava\":\"\u5B57\u7B26\u4E32\"
反转义后:"这是Java":"字符串"
"这是Java":"字符串"
"这是Java":"字符串"
-------------------------------------------------------------
转义/反转义Json字符串
原字符串: {"keyword": "这是Json字符串"}
转义后:{\"keyword\": \"\u8FD9\u662FJson\u5B57\u7B26\u4E32\"}
反转义后:{"keyword": "这是Json字符串"}
-------------------------------------------------------------
转义/反转义Html字符串
原字符串: <strong>加粗字符</strong>
转义后:&lt;strong&gt;加粗字符&lt;/strong&gt;
反转义后:<strong>加粗字符</strong>
-------------------------------------------------------------
转义/反转义xml字符串
原字符串: <xml>"xml字符串"</xml>
转义后:&lt;xml&gt;&quot;xml字符串&quot;&lt;/xml&gt;
反转义后:<xml>"xml字符串"</xml>
-------------------------------------------------------------
转义/反转义csv字符串
原字符串: 1997,Ford,E350,"Super, luxurious truck"
转义后:"1997,Ford,E350,""Super, luxurious truck"""
反转义后:1997,Ford,E350,"Super, luxurious truck"
-------------------------------------------------------------
转义/反转义Java Script字符串
原字符串: <script>alert('1111')</script>
转义后:<script>alert(\'1111\')<\/script>
反转义后:<script>alert('1111')</script>Process finished with exit code 0

Java转义工具类StringEscapeUtils的学习笔记相关推荐

  1. JDBCUtils工具类的基础学习笔记

    注:以下整理笔记来自自己的公众号,适合初学者一起探讨,我也是初学者! 创建一个实体类: package com.zx.bean;public class User {private int id;pr ...

  2. 「Java工具类」Apache的StringEscapeUtils转义工具类

    介绍语 本号主要是Java常用关键技术点,通用工具类的分享:以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+d ...

  3. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  4. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  5. commons-lang常用工具类StringEscapeUtils使用--转

    https://my.oschina.net/ydsakyclguozi/blog/341496 在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是 ...

  6. java日期工具类DateUtil

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...

  7. commons-lang常用工具类StringEscapeUtils使用

    2019独角兽企业重金招聘Python工程师标准>>> 在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xs ...

  8. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  9. Java正则工具类从地址中提取省市区

    Java正则工具类从地址中提取省市区 最近有个需求,从一串地址中提取出省市区,然后开始寻找解决方案,最终通过网上一些正则,再加上自己改动的,貌似弄成一个比较匹配的工具类,其中代码如下,有需要的可以参考 ...

最新文章

  1. CentOS 7 的初始化
  2. 管理员请注意 一条后门病毒攻击链正在针对服务器发起入侵
  3. 带防夹功能的升降器原理_全系标配行车自动落锁功能,全新凯美瑞表现分析
  4. OpenViDial:一个大规模多模态对话数据集
  5. layui移动端适配_移动端适配方案
  6. clickhouse语句_篇四|ClickHouse的可视化界面与集群状态监控
  7. 在CentOS上安装NodeJS_v14.x
  8. python图像分类代码_Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛
  9. 【Unity面试】 Unity基础核心 | 面试真题 | 全面总结 | 建议收藏
  10. 我的csdn账号开通啦~
  11. android studio 中要在app名称中添加特殊符号
  12. 图片大小怎么调整?图片怎么改尺寸?
  13. stata17安装教程
  14. 利用ps制作油画风格的照片
  15. 个人小程序与企业小程序的区别
  16. 如何应对社会人,如何应对平淡的物质世界
  17. CF1341B Nastya and Door 题解
  18. 小米隔空充电技术,肌肉还是鸡肋?
  19. 【优化模型】图论与TSP模型结合
  20. 发短信之前一定记得检查tmail.exe

热门文章

  1. 跨国企业在中国 | 舍弗勒将在湖南湘江新区成立研发中心;香格里拉酒店落户上海虹桥机场...
  2. STM32送药小车(五):Openmv与主控芯片STM32的配合
  3. 怎么关闭计算机用户账户控制面板,win10怎么关闭用户账户控制面板怎么打开(组图)...
  4. Kafka学习(十)--Kafka消费者Consumer消费消息配置实战
  5. sql 对表操作 (新增一列)
  6. 熊猫卫士钛金版 2005 稳定版 下载
  7. 【忏悔投稿】一个90后的忏悔
  8. 品读国学经典之一——管仲《牧民》
  9. sql 外键约束实例
  10. SQL Server高级查询与T-SQL编程笔记