对HTML转码

简介:

使用Java 对HTML代码进行转码

Java代码   收藏代码
  1. /** 
  2.      * 去除HTML字串中的控制字符及不可视字符 
  3.      * 
  4.      * @param str 
  5.      *            HTML字串 
  6.      * @return 返回的字串 
  7.      */  
  8.     public static String escapeHTML(String str) {  
  9.         int length = str.length();  
  10.         int newLength = length;  
  11.         boolean someCharacterEscaped = false;  
  12.         for (int i = 0; i < length; i++) {  
  13.             char c = str.charAt(i);  
  14.             int cint = 0xffff & c;  
  15.             if (cint < 32)  
  16.                 switch (c) {  
  17.                 case 11:  
  18.                 default:  
  19.                     newLength--;  
  20.                     someCharacterEscaped = true;  
  21.                     break;  
  22.   
  23.                 case '\t':  
  24.                 case '\n':  
  25.                 case '\f':  
  26.                 case '\r':  
  27.                     break;  
  28.                 }  
  29.             else  
  30.                 switch (c) {  
  31.                 case '"':  
  32.                     newLength += 5;  
  33.                     someCharacterEscaped = true;  
  34.                     break;  
  35.   
  36.                 case '&':  
  37.                 case '\'':  
  38.                     newLength += 4;  
  39.                     someCharacterEscaped = true;  
  40.                     break;  
  41.   
  42.                 case '<':  
  43.                 case '>':  
  44.                     newLength += 3;  
  45.                     someCharacterEscaped = true;  
  46.                     break;  
  47.                 }  
  48.         }  
  49.         if (!someCharacterEscaped)  
  50.             return str;  
  51.   
  52.         StringBuffer sb = new StringBuffer(newLength);  
  53.         for (int i = 0; i < length; i++) {  
  54.             char c = str.charAt(i);  
  55.             int cint = 0xffff & c;  
  56.             if (cint < 32)  
  57.                 switch (c) {  
  58.                 case '\t':  
  59.                 case '\n':  
  60.                 case '\f':  
  61.                 case '\r':  
  62.                     sb.append(c);  
  63.                     break;  
  64.                 }  
  65.             else  
  66.                 switch (c) {  
  67.                 case '"':  
  68.                     sb.append("&quot;");  
  69.                     break;  
  70.   
  71.                 case '\'':  
  72.                     sb.append("&apos;");  
  73.                     break;  
  74.   
  75.                 case '&':  
  76.                     sb.append("&amp;");  
  77.                     break;  
  78.   
  79.                 case '<':  
  80.                     sb.append("&lt;");  
  81.                     break;  
  82.   
  83.                 case '>':  
  84.                     sb.append("&gt;");  
  85.                     break;  
  86.   
  87.                 default:  
  88.                     sb.append(c);  
  89.                     break;  
  90.                 }  
  91.         }  
  92.         return sb.toString();  
  93.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test_escapeHTML(){  
  3.         String input="<script>";  
  4.         System.out.println(ValueWidget.escapeHTML(input));  
  5.     }  

 运行结果:

&lt;script&gt;

 

对应的js方法:

Js代码   收藏代码
  1. escape: function (a) {  
  2.             a = a ? a : '';  
  3.             return a.replace(/</g, "\x26lt;").replace(/>/g, "\x26gt;").replace("/\x26/g""\x26amp;").replace(/"/g, "\x26quot;");  
  4.         },  
  5.   
  6.         unescape: function (a) {  
  7.             a = a ? a : '';  
  8.             return a.replace(/&lt;/g,  
  9.                 "\x3c").replace(/&gt;/g, "\x3e").replace(/&amp;/g, "\x26").replace(/&quot;/g, '"');  
  10.         },  

 

相关文章
|
编解码 JavaScript 前端开发
|
10月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
10月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
10月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
10月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
10月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
10月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
10月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应

热门文章

最新文章