Html特殊字符转义

我们都知道,在html中遇到>、<、空格等字符显示处理是会将其转为&gt;、&lt;、&nbsp;来展示使用,以便兼容和不影响既有页面的html代码里的成对标签的正常加载,与之相同的还有:

字符 转义字符
" &quot;
& &amp;
< &lt;
> &gt;
不断开空格(non-breaking space) &nbsp;

等等... ...

那么我们就会遇到如下业务场景,比如我们通过后台获取到的页面值为转义后&gt、&lt;等, 而实际我们需要是>和<,这是我们就需要通过一个Java的类做下转义处理。

//import org.springframework.web.util.HtmlUtils;String sourceStr = "&gt;&nbsp;&lt;";
System.out.println("原始 sourceStr = " + sourceStr);//将转义后的html解析成原本的值
String targetStr = HtmlUtils.htmlUnescape(sourceStr);
System.out.println("目标 targetStr = " + targetStr );

输出结果:


原始 sourceStr = &gt;&nbsp;&lt;
 目标 targetStr = > <


反过来我们也可以将这些特殊字符转以后返回给相应业务接口。

//import org.springframework.web.util.HtmlUtils;String sourceStr = "> <";
System.out.println("原始 sourceStr = " + sourceStr);//将特殊字符进行转义处理
String targetStr = HtmlUtils.htmlEscape(sourceStr);
System.out.println("目标 targetStr = " + targetStr );

输出结果:


原始 sourceStr = &gt;&nbsp;&lt;
 目标 targetStr = > <


Java特殊字符转义

同理,针对java的一些特殊字符串的转义处理与上面项目,区别在与所用的到类和方式为:StringEscapeUtils。

转义字符

意义

\b

退格(BS) ,将当前位置移到前一列

\f

换页(FF),将当前位置移到下页开头

\n

换行(LF) ,将当前位置移到下一行开头

\r

回车(CR) ,将当前位置移到本行开头

\t

水平制表(HT) (跳到下一个TAB位置)

\v

垂直制表(VT)

\\

代表一个反斜线字符''\'

\'

代表一个单引号(撇号)字符

\"

代表一个双引号字符

\? 代表一个问号

\0

空字符(NULL)

\ddd

1到3位八进制数所代表的任意字符

\xhh

1到2位十六进制所代表的任意字符

等等... ...

针对以上Java特殊字符的转义,我们通过下面的方法进行处理。

//import org.apache.commons.lang.StringEscapeUtils;String sourceStr = "{\\\"name\\\":\\\"spy\\\",\\\"id\\\":\\\'123456\\\'}";
System.out.println("原始 sourceStr = " + sourceStr);String targetStr = StringEscapeUtils.unescapeJava(sourceStr);
System.out.println("目标 targetStr = " + targetStr);

输出结果:


原始 targetStr = {\"name\":\"spy\",\"id\":'123456'}

目标 sourceStr = {"name":"spy","id":'123456'}


反过来我们也可以将这些特殊字符转以后返回给相应业务接口。

//import org.apache.commons.lang.StringEscapeUtils;String sourceStr = "{\"name\":\"spy\",\"id\":\'123456\'}";
System.out.println("原始 sourceStr = " + sourceStr);String targetStr = StringEscapeUtils.escapeJava(sourceStr);
System.out.println("目标 targetStr = " + targetStr);

输出结果:


原始 sourceStr = {"name":"spy","id":'123456'}
 目标 targetStr = {\"name\":\"spy\",\"id\":'123456'}


PS:当然我们也可以通过String.replace、replaceAll等进行手动处理。

写完这个笔记保存时发现,CSDN也不能正常保存标题中包含的<和>等特殊字符,转义后&gt;和&lt;有原样显示了,看,这就是应用场景!

针对大于号gt;、小于号lt;等html代码 和 双引号、单引号'等java字符串的转义处理相关推荐

  1. html 小于号 乱码,shell重定向(大于号,小于号,左右,21,)

    一. -e表示只要filename存在,则为真,不管filename是什么类型,当然这里加了!就取反 额外的一些 -e filename 如果 filename存在,则为真 -d filename 如 ...

  2. MyBatis SQL里的大于号、小于号

    MyBatis mapper文件是xml文件,需要特殊字符如大于号.小于号后需要转义. 原字符 转义后字符 < < <= <= > > >= >=

  3. 关于mybatis中的大于号和小于号的错误

    项目场景: 运用于再mybatis使用大于号或小于号进行数据查询 问题描述: 再mybatis写日期查询时,查询的使两个时间段中的数据,但是再sqlyog中写完查询语句并测试没一点儿问题,可是把代码放 ...

  4. 如何在HTML页面中编写大于号和小于号?(HTML实体)

    1.HTML实体   在HTML中,我们是不能直接使用大于号">"和小于号"<"的,因为浏览器会将这些当作标签进行处理,这样一来就不能正常显示,所以 ...

  5. 4和2大于号小于号箭头那边_认识﹥﹤=(大于号、小于号和等号), 会用符号表示两个数的大小 导学案(青岛版一年级上册)...

    2010至2011上学期一年级数学 教 师:石云霞 学习内容 第12页信息窗3. 学习目标 1.借助"拔河"的情境感受数量之间的大.小以及相等的关系.学会用一一对应的方法操作学具来 ...

  6. mybatis 使用大于号和小于号

    mapper文件不识别>和<,可以使用<![CDATA[  和 ]]> 把sql语句括起来,这样就能使用大于号和小于号了. 如:<![CDATA[ select * fr ...

  7. Mybatis中大于号和小于号表示方式

    文章目录 一.使用场景 二.使用转义方式实现大于小于号的表示(等号不需要转义) 三.使用标记方式实现大于小于号的表示 一.使用场景 使用Mybaits进行SQL查询时候,无法避免要用到大于号和小于号, ...

  8. MyBatis中大于号以及小于号的表达方式

    MyBatis中大于号以及小于号的表达方式 实现方案 以下介绍两种可行方法: 转义法 大于:> 相当于 > 小于:< 相当于 < 大于等于:>= 相当于 >= 小于 ...

  9. java字大于号 问号_cad中大于号和小于号都显示为问号 我怎么才能知到这种情况是缺少什么字体? 希望知道的大师指点...

    cad中大于号和小于号都显示为问号 我怎么才能知到这种情况是缺少什么字体? 希望知道的大师指点以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们 ...

  10. 4和2大于号小于号箭头那边_《认识大于号、小于号和等号》课件

    <认识大于号.小于号和等号>课件 教学内容: 教科书第12-13页,认识大于号.小于号和等号. 教学目标: 1.在"拔河"的情境中感受数量之间的大小及相等关系,能用一一 ...

最新文章

  1. cartograhper--X1_lidar
  2. Linux大文件处理,伪分区
  3. (转帖)数据库时代的终结
  4. 多云回归分析入门(老阿姨要重新开始学习概率论了~)
  5. 动态管理配置文件扩展接口EnvironmentPostProcessor
  6. python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
  7. 1.SharePoint2010初接触
  8. POJ - 3250 Bad Hair Day(单调队列/单调栈)
  9. 初学echart的简单使用
  10. 拿下字节offer,这些面试题命中率高达90%以上
  11. java 1.8有没有jshell_收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~...
  12. Python多线程编程中使用Barrier对象进行同步
  13. linux系统创建lvm卷,Linux逻辑卷LVM实现
  14. 基于MonteCarlo法的经典射击问题中的杀伤概率估计问题
  15. BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
  16. Latex表格与图片旋转,且标题同时旋转 (表格的标题可设置于表格的上方或下方)
  17. 推荐使用什么样的平台表单制作工具好?
  18. py 网站实时监控+可手动回溯回放网站数据的实现
  19. 游戏装备mysql表设计_Game游戏数据库人物表,装备表,技能表
  20. AcWing 第69场周赛

热门文章

  1. 2023年Q1电商平台饮料行业数据分析报告
  2. Tomcat基本的配置和IDEA上部署项目
  3. [企业管理]员工生育保障问题的讨论
  4. Ubntu分辨率低解决办法
  5. mysql按固定字符进行切割_MySQL:SQL按特定字符分隔切割或删除特定字符
  6. element-ui页面$router.push(“xxx“)跳转后,导航菜单高亮 和 el-menu 传值
  7. CDH安装kafka组件启动失败
  8. Oracle个人笔记
  9. powerpivot_使用PowerPivot钻取数据
  10. 倍思畅享系列Type-C转USB3.0 RJ45网口HUB转换器 极简设计非凡功能