asp.net与js中字符串的HTML编码与解码

一、Asp.net中字符的HTML编码与解码

 字符的HTML编码:

System.Web.HttpUtility.HtmlEncode( " 字符串 " );

 字符的HTML解码: 

 message  =  page.Server.HtmlDecode( " 字符串 " );


 二、JS中的HTML编码与解码

 有两中方法可以实现。一种是通过将值赋给一个动态创建一个容器来实现,另外一种方法是通过替换特殊字符来实现。

1、通过将值赋给一个动态创建一个容器来实现

   1)HTML编码:

    此方法是用的浏览器内部转换器实现转换,方法是动态创建一个容器标签元素,如DIV,将要转换的字符串设置为这个元素的innerText,然后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串。 

代码
function  HTMLEncode ( input )
{
    
var  converter  =  document.createElement( " DIV " );
    converter.innerText 
=  input;
    
var  output  =  converter.innerHTML;
    converter 
=   null ;
    
return  output;
}

  2)HTML解码:

      用相同的方法实现对字符串的HTMLDecode解码,但有个问题就是紧跟在字符"<"后面的非空字符将连同字符"<"同时显示不出来。当 然,对字符串作相应处理是可以解决这个问题的,比如在字符"<"后面加个空格,解码后再去掉就行,这是后话。毕竟,要使用 HTMLDecode方法解码,自然是字符串已经经过HTMLEncode方法编码了,而经过HTMLEncode编码后的字符串,是不可能有字符 "<"存在的。 

function  HTMLDecode ( input )
{
    
var  converter  =  document.createElement( " DIV " );
    converter.innerHTML 
=  input;
    
var  output  =  converter.innerText;
    converter 
=   null ;
    
return  output;
}


2、通过替换特殊字符来实现

  1)HTML编码:  

function     HTMLEnCode(str)  
{  
         
var     s     =      "" ;  
         
if     (str.length     ==      0 )     return      "" ;  
         s     =     str.replace( / & / g,     " &gt; " );  
         s     =     s.replace( / < / g,         " &lt; " );  
         s     =     s.replace( / > / g,         " &gt; " );  
         s     =     s.replace( /      / g,        "&nbsp;");  
         s     =     s.replace( / \' / g,       " ' " );  
         s     =     s.replace( / \" / g,       " &quot; " );  
         s     =     s.replace( / \n / g,       " <br> " );  
         
return     s;  
}   


  2)HTML解码:

function     HTMLDeCode(str)  
{  
         
var     s     =      "" ;  
         
if     (str.length     ==      0 )     return      "" ;  
         s     =     str.replace( / &gt; / g,     " & " );  
         s     =     s.replace( / &lt; / g,         " < " );  
         s     =     s.replace( / &gt; / g,         " > " );  
         s     =     s.replace( / &nbsp; / g,         "      " );  
         s     =     s.replace( / ' / g,       " \' " );  
         s     =     s.replace( / &quot; / g,       " \ "" );  
         s    =    s.replace(/<br>/g,       " \n " );  
         return    s;  
}   


 

注:本文中第二部分“JS中的HTML编码与解码”转自http://hi.baidu.com/hfgyd2616/blog/item/864becf8cbe52c0bd9f9fdd9.html

你可能感兴趣的:(asp.net)