[紅]C#中網(wǎng)址編碼轉換方法

2010-08-28 10:47:45來源:西部e網(wǎng)作者:

在WAP中經常要遇到網(wǎng)址編碼轉換的問題,在ASP解決起來還是比較麻煩,但是在C#中做起來就容易多了,今天整理了一下,用ASP.NET做了一個例子,代碼如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace study
{
  /// <summary>
  /// UrlEncode_ 的摘要說明。
  /// </summary>
  public class UrlEncode_ : System.Web.UI.Page
  {
    private void Page_Load(object sender, System.EventArgs e)
    {
      string strName="劉德華";
      string strEncodeNameGB2312=System.Web.HttpUtility.UrlEncode(strName,System.Text.Encoding.GetEncoding("GB2312")).ToUpper();
      string strDecodeGB2312=System.Web.HttpUtility.UrlDecode(strEncodeNameGB2312,System.Text.Encoding.GetEncoding("GB2312"));
      //如果設定為默認編碼則 System.Text.Encoding.Default

      Response.Write( "網(wǎng)址編碼過的文字(GB2312):"+ strEncodeNameGB2312 +"<br>" );
      Response.Write( "經過解碼的文字為(GB2312):"+ strDecodeGB2312 +"<p></p>" );      
      

      string strEncodeNameUTF8=System.Web.HttpUtility.UrlEncode(strName,System.Text.Encoding.GetEncoding("utf-8")).ToUpper();
      string strDecodeUTF8=System.Web.HttpUtility.UrlDecode(strEncodeNameUTF8,System.Text.Encoding.GetEncoding("utf-8"));

      Response.Write( "網(wǎng)址編碼過的文字(UTF8):"+ strEncodeNameUTF8 +"<br>" );    
      Response.Write( "經過解碼的文字為(UTF8):"+ strDecodeUTF8 +"<br>" );
    }

    #region Web 窗體設計器生成的代碼
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
      //
      InitializeComponent();
      base.OnInit(e);
    }
    
    /// <summary>
    /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
    /// 此方法的內容。
    /// </summary>
    private void InitializeComponent()
    {    
      this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion
  }
}


備注
GetEncoding 方法依賴于基礎平臺支持大部分代碼頁。但是,對于下列情況提供系統(tǒng)支持:默認編碼,即在執(zhí)行此方法的計算機的區(qū)域設置中指定的編碼;Little-Endian Unicode (UTF-16LE);Big-Endian Unicode (UTF-16BE);Windows 操作系統(tǒng) (windows-1252);UTF-7;UTF-8;ASCII 以及 GB18030(簡體中文)。

詳見MSDN:ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemtextencodingclassgetencodingtopic2.htm
關鍵詞:C#