asp.net與js中字串的HTML編碼與解碼

來源:互聯網
上載者:User

一、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解碼,但有個問題就是緊跟在字元"<"後面的非Null 字元將連同字元"<"同時顯示不出來。當 然,對字串作相應處理是可以解決這個問題的,比如在字元"<"後面加個空格,解碼後再去掉就行,這是後話。畢竟,要使用 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.