针对大于号gt;、小于号lt;等html代码 和 双引号、单引号'等java字符串的转义处理
Html特殊字符转义
我们都知道,在html中遇到>、<、空格等字符显示处理是会将其转为>、<、 来展示使用,以便兼容和不影响既有页面的html代码里的成对标签的正常加载,与之相同的还有:
字符 | 转义字符 |
---|---|
" | " |
& | & |
< | < |
> | > |
不断开空格(non-breaking space) | |
等等... ...
那么我们就会遇到如下业务场景,比如我们通过后台获取到的页面值为转义后>、<等, 而实际我们需要是>和<,这是我们就需要通过一个Java的类做下转义处理。
//import org.springframework.web.util.HtmlUtils;String sourceStr = "> <";
System.out.println("原始 sourceStr = " + sourceStr);//将转义后的html解析成原本的值
String targetStr = HtmlUtils.htmlUnescape(sourceStr);
System.out.println("目标 targetStr = " + targetStr );
输出结果:
原始 sourceStr = > <
目标 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 = > <
目标 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;等html代码 和 双引号、单引号'等java字符串的转义处理相关推荐
- html 小于号 乱码,shell重定向(大于号,小于号,左右,21,)
一. -e表示只要filename存在,则为真,不管filename是什么类型,当然这里加了!就取反 额外的一些 -e filename 如果 filename存在,则为真 -d filename 如 ...
- MyBatis SQL里的大于号、小于号
MyBatis mapper文件是xml文件,需要特殊字符如大于号.小于号后需要转义. 原字符 转义后字符 < < <= <= > > >= >=
- 关于mybatis中的大于号和小于号的错误
项目场景: 运用于再mybatis使用大于号或小于号进行数据查询 问题描述: 再mybatis写日期查询时,查询的使两个时间段中的数据,但是再sqlyog中写完查询语句并测试没一点儿问题,可是把代码放 ...
- 如何在HTML页面中编写大于号和小于号?(HTML实体)
1.HTML实体 在HTML中,我们是不能直接使用大于号">"和小于号"<"的,因为浏览器会将这些当作标签进行处理,这样一来就不能正常显示,所以 ...
- 4和2大于号小于号箭头那边_认识﹥﹤=(大于号、小于号和等号), 会用符号表示两个数的大小 导学案(青岛版一年级上册)...
2010至2011上学期一年级数学 教 师:石云霞 学习内容 第12页信息窗3. 学习目标 1.借助"拔河"的情境感受数量之间的大.小以及相等的关系.学会用一一对应的方法操作学具来 ...
- mybatis 使用大于号和小于号
mapper文件不识别>和<,可以使用<![CDATA[ 和 ]]> 把sql语句括起来,这样就能使用大于号和小于号了. 如:<![CDATA[ select * fr ...
- Mybatis中大于号和小于号表示方式
文章目录 一.使用场景 二.使用转义方式实现大于小于号的表示(等号不需要转义) 三.使用标记方式实现大于小于号的表示 一.使用场景 使用Mybaits进行SQL查询时候,无法避免要用到大于号和小于号, ...
- MyBatis中大于号以及小于号的表达方式
MyBatis中大于号以及小于号的表达方式 实现方案 以下介绍两种可行方法: 转义法 大于:> 相当于 > 小于:< 相当于 < 大于等于:>= 相当于 >= 小于 ...
- java字大于号 问号_cad中大于号和小于号都显示为问号 我怎么才能知到这种情况是缺少什么字体? 希望知道的大师指点...
cad中大于号和小于号都显示为问号 我怎么才能知到这种情况是缺少什么字体? 希望知道的大师指点以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们 ...
- 4和2大于号小于号箭头那边_《认识大于号、小于号和等号》课件
<认识大于号.小于号和等号>课件 教学内容: 教科书第12-13页,认识大于号.小于号和等号. 教学目标: 1.在"拔河"的情境中感受数量之间的大小及相等关系,能用一一 ...
最新文章
- cartograhper--X1_lidar
- Linux大文件处理,伪分区
- (转帖)数据库时代的终结
- 多云回归分析入门(老阿姨要重新开始学习概率论了~)
- 动态管理配置文件扩展接口EnvironmentPostProcessor
- python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
- 1.SharePoint2010初接触
- POJ - 3250 Bad Hair Day(单调队列/单调栈)
- 初学echart的简单使用
- 拿下字节offer,这些面试题命中率高达90%以上
- java 1.8有没有jshell_收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~...
- Python多线程编程中使用Barrier对象进行同步
- linux系统创建lvm卷,Linux逻辑卷LVM实现
- 基于MonteCarlo法的经典射击问题中的杀伤概率估计问题
- BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
- Latex表格与图片旋转,且标题同时旋转 (表格的标题可设置于表格的上方或下方)
- 推荐使用什么样的平台表单制作工具好?
- py 网站实时监控+可手动回溯回放网站数据的实现
- 游戏装备mysql表设计_Game游戏数据库人物表,装备表,技能表
- AcWing 第69场周赛
热门文章
- 2023年Q1电商平台饮料行业数据分析报告
- Tomcat基本的配置和IDEA上部署项目
- [企业管理]员工生育保障问题的讨论
- Ubntu分辨率低解决办法
- mysql按固定字符进行切割_MySQL:SQL按特定字符分隔切割或删除特定字符
- element-ui页面$router.push(“xxx“)跳转后,导航菜单高亮 和 el-menu 传值
- CDH安装kafka组件启动失败
- Oracle个人笔记
- powerpivot_使用PowerPivot钻取数据
- 倍思畅享系列Type-C转USB3.0 RJ45网口HUB转换器 极简设计非凡功能