慎用StringEscapeUtils.escapeHtml方法【转】

推荐使用Apache commons-lang的StringUtils来增强Java字符串处理功能,也一直在项目中大量使用StringUtils和StringEscapeUtils这两个实用类。

最近在数据库里发现某个表的内容全都成了HTML entity表示,中文也全被转换成了”我”这样的格式,而在页面上显示一切正常。最终发现造成这个后果的原因是在将字符串保存到数据库之前,用StringEscapeUtils.escapeHtml对其进行了处理。

字符串过滤是在许多Web应用开发中需要考虑的问题。比如用户输入一个左尖括号(

而某些内容是不会被编辑的,比如一般的电子邮件,这类就可以在用户提交表单之时转换,一劳永逸。于是我使用了StringEscapeUtils.escapeHtml来做这个工作。

如果是英文内容,没有任何问题,然而它将一个中文字符转换成了8个字符。在UTF-8的编码 中,每个汉字占用三个字节,每个英文字符占用一个字节。这样的转换造成了大量的空间浪费。

简单的办法是自己写一个escapeHtml方法,替换左右尖括号就可以了。虽然还有一些HTML entity未被转换,可能造成输出的网页不符合web标准,但是大部分浏览器都可以正常显示也就够了。

对要输出的网页内容编码,网上搜的方法。

public static String htmlEncode(String source) {

if (source == null) {

return "";

}

String html = "";

StringBuffer buffer = new StringBuffer();

for (int i = 0; i < source.length(); i++) {

char c = source.charAt(i);

switch (c) {

case '

buffer.append("<");

break;

case '>':

buffer.append(">");

break;

case '&':

buffer.append("&");

break;

case '"':

buffer.append(""");

break;

case 10:

case 13:

break;

default:

buffer.append(c);

}

}

html = buffer.toString();

return html;

}

java escape html_慎用StringEscapeUtils.escapeHtml步骤相关推荐

  1. java escape html_慎用StringEscapeUtils.escapeHtml方法【转】

    推荐使用Apache commons-lang的StringUtils来增强Java字符串处理功能,也一直在项目中大量使用StringUtils和StringEscapeUtils这两个实用类. 最近 ...

  2. 慎用StringEscapeUtils.escapeHtml方法

    原文链接:http://newleague.iteye.com/blog/1112673 推荐使用Apache commons-lang的StringUtils来增强Java字符串处理功能,也一直在项 ...

  3. 初学者成为优秀Java程序员的8个步骤

    经常会有人问小千,如何从一名零基础初学者成为一名优秀的Java程序员.其实,小千见证了很多人从一名初学者逐步成长为一名优秀的Java开发工程师,他们或多或少都具有一些特征.下面,小千就给大家分享成为优 ...

  4. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  5. java创建类的三个步骤_3个简单步骤即可测试Java 8

    java创建类的三个步骤 即将发布的Java 8版本为Java开发人员带来了许多新功能,但是升级时始终存在代码破裂的风险. 我们都记得Java 7出厂时有一系列非常严重的错误 . 当然,我们所有人都可 ...

  6. 编写运行java的步骤,【简答题】编写运行Java程序需要经过哪些主要步骤? (30.0分)...

    [简答题]编写运行Java程序需要经过哪些主要步骤? (30.0分) 更多相关问题 电子商务的()个支撑点是框架结构得以存在并能应用的基础.A.1B.2C.3 电子商务总体框架包括()个层次.A.2B ...

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

    Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...

  8. java零基础入门的四大步骤

    对于许多想要转换到Java开发的初学者来说,如何学习Java是一个问题.在很多人眼里,程序员是高薪的代名词,所以他们吸引了很多想要转到Java开发的初学者.但是对于很多初学者来说,他们不知道从哪里开始 ...

  9. StringEscapeUtils.escapeHtml的具体使用

    在做代码高亮时,从数据库中取出代码如下(节选): <pre class="brush: java;"> 需要的应该是<pre class=\"brush ...

最新文章

  1. 从代码设计到应用开发,入坑深度学习看这本书就够了
  2. vb科学计算机x y,vb程序用vb实现系统的计算器功能1/x,sqrt,%,+/-, 爱问知识人
  3. 人脸识别屡遭非议 会成为“潘多拉魔盒”吗
  4. 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略
  5. 应用宝上架审核要求_【建议收藏】安卓应用商店上架经验,含流程,方法
  6. bash编程练习题及答案
  7. RocketMQ(五):教你如何调试源代码
  8. linux 如何让.开头的文件不隐藏_如何使用 BusyBox 制作Linux最小文件系统
  9. ortools解决tsp_ortools系列:路由问题1
  10. NPM使用前设置和升级
  11. 物流货代公司管理系统
  12. 阿里云银行关键业务破冰 邢台银行首家
  13. SQL2008升级SQL2008R2完全教程
  14. ChIP-seq实战 | 染色质免疫共沉淀技术 | ATAC-seq | 染色质开放性测序技术
  15. 十一打卡推荐 | 在北京798 UCCA,百度AI的这场「秀」把我看high了
  16. 一种文件捆绑型病毒研究
  17. MATLAB模拟陀螺仪的运动轨迹(附完整代码)
  18. 导入Excel如何判是否有重复的行
  19. Apipost 上手指南
  20. signature=5a522a8356f9906b0b775bdada02a4c6,阜阳境内车辆违章信息公示(4月3—4月23)

热门文章

  1. 【开源】基于Java+SpringBoot+Vue+ElementUI的超市管理系统
  2. 计算机科学与技术(现代教育技术),现代教育技术
  3. python性能分析(一)——使用timeit给你的程序打个表吧
  4. html轮播台袋效果,使用html+js+css 实现页面轮播图效果(实例讲解)
  5. Windows 应急流程及实战演练
  6. Mathematica绘制椭圆摆线簇(二)
  7. Linux 如何设置密码复杂度?
  8. 《Linux7通过LAMP环境构搭建WordPress论坛 》
  9. mysql 分表和分区_Mysql分表和分区的区别
  10. UE4中采集360°全景图片和视频