对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.         },  

 

时间: 2024-11-01 07:45:29

对HTML转码的相关文章

ps怎么把二维码设置为透明背景?

  ps怎么把二维码设置为透明背景?微信二维码在下载之后的图片是带有一个白色背景的,我们在设计图稿时,二维码带有一个白色背景非常的不方便,我们应该怎么把白色的背景去掉呢?下面我用ps简单介绍一下去掉二维码白色背景的方法. 1.首先打开photosop,新建一个透明图层,文件>新建,新建时,背景色选择透明色. 2.在这个文档中打开我们要变为透明背景的二维码,打开之后如下图所示.(二维码为自己生成,不存在广告信息) 3.然后在右侧选择图层样板,选择图层旁边的通道. 4.通道种我们会看到有rgb 红

微信扫描二维码登录网站代码

 用户通过扫描网页提供的二维码实现登陆信息获取,大家参考使用吧 请先下载  snoopy 类   代码如下: <?php /**  *  微信公众平台PHP-SDK  *  Wechatauth为非官方微信登陆API  *  用户通过扫描网页提供的二维码实现登陆信息获取  *  主要实现如下功能:  *  get_login_code() 获取登陆授权码, 通过授权码才能获取二维码  *  get_code_image($code='') 将上面获取的授权码转换为图片二维码  *  verify

HTTP状态码集

1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应. 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动. 100 Continue 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个

Python字符和字符值(ASCII或Unicode码值)转换方法

  这篇文章主要介绍了Python字符和字符值(ASCII或Unicode码值)转换方法,即把字符串在ASCII值或者Unicode值之间相与转换的方法,需要的朋友可以参考下 目的 将一个字符转化为相应的ASCII或Unicode码,或相反的操作. 方法 对于ASCII码(0~255范围) 代码如下: >>> print ord('A') 65 >>> print chr(65) A 对于Unicode字符,注意仅接收长度为1的Unicode字符 代码如下: >&

深入字节码 -- 计算方法执行时间

什么是字节码? java程序通过javac编译之后生成文件.class就是字节码集合,正是有这样一种中间码(字节码),使得scala/groovy/clojure等函数语言只用实现一个编译器即可运行在JVM上. 看看一段简单代码. public long getExclusiveTime() { long startTime = System.currentTimeMillis(); System.out.printf("exclusive code"); long endTime =

Eclipse查看Hadoop源码

1.开发环境 1.Hadoop-1.2.1 2.apache-ant-1.8.0 2.新建Java项目 项目叫"Hadoop_sourcecode" 3.拷贝Hadoop中源码 Hadoop包中src文件文件夹下core.hdfs.mapred文件夹拷贝到项目的src中 4.改变目录结构 删除原来的目录结构:   增加新的目录结构:        选定后的目录结构      5.添加Jar包 需要包含进来的jar包: "\hadoop-1.2.1\lib"中所有ja

方法-windows下praat源码编译问题!急急急急急

问题描述 windows下praat源码编译问题!急急急急急 从官网上下载的praat源码进行编译,按照网上说的方法编译,但是总是出现 make (e=2): 系统找不到指定的文件. make[1]: *** [libgsl.a] Error 2 make[1]: Leaving directory `d:/sources_5404/external/gsl' make: *** [all] Error 2 错误!试了各种方法,都没解决,望高手指点一下! 解决方案 你试了哪些方法?下面的方法试过

谁有做过js做过3D圆饼图或者可以提供一下有源码的网址

问题描述 谁有做过js做过3D圆饼图或者可以提供一下有源码的网址 注意它的文字是在图中间的,描述在下面 解决方案 hightcharts http://www.hcharts.cn/demo/index.php?p=102

源代码-我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能。

问题描述 我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能. ①BitMatrix.java ②ByteMatrix.java ③MultiFormatWriter.java ④QRCodeWriter.java 这4个 我实在不懂 这功能,这里面哪个 是将输入字符串 变成那个0,1 那个的?用什么算法了...我这是Android工程. 谢谢了...

ubuntu 11.10(32位系统)下编译android源码 make错误解决办法

本文介绍在ubuntu 11.10系统下编译android 2.3.3源码,编译之前请确定上两篇文章(http://www.cnblogs.com/dwayne/archive/2011/11/16/2250732.html和http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html)中所需的准备工作已经成功完成.编译完成生成系统镜像文件,并在模拟器中运行. 准备工作完成后,开始编译工作.下载下来的源码有5G多,如果按照我之前写的获