C#寫一個js的escape函式

xssh913913發表於2007-11-27
 

由於某種需要,要在server端對字串(主要是漢字)進行編碼,在頁面解碼.   
   C#裡有urlencode,但js沒有urldecode,所以想用js的escape編碼,但是C#裡沒有escape函式(我沒找到),這樣就需要自己寫一個escape編碼函式.   
   這是其他網友寫的編碼規則:   
  簡單的說,就是把空格、標點、帶音調標記的字元以及非    ASCII    字元都進行編碼,編碼規則是用    %    加上字元    ASCII    碼的    2    位十六進位制形式。   
   其實就是%uXXXX,其中XXXX就是漢字的十六進位制數.   
   我對編碼不太懂,請問這個C#函式該如何寫?只要寫出關鍵語句就可以.   
   注意:要是C#的escape編碼,而不是解碼!!!   
    
   HttpUtility.UrlEncodeUnicode(string)   
   就可以了

另外對於在寫cookie時比如:abcd@126.com,我們在寫入的時候即使不做任何處理,會自動編碼成abcd%40126.com,然後我們在伺服器端,比如c#裡讀取需要轉換HttpUtility.UrlDecode(cookieUEmail.Value.Trim()).ToString()

但是對於在寫cookie時用了escape(js,php,asp都有這個函式,但是c#沒有),在cookie裡格式為%25u4E03%25u90CE2007,這時我們需要反解碼兩遍,HttpUtility.UrlDecode(HttpUtility.UrlDecode(cookieUEmail.Value.Trim()).ToString()).ToString()

第一遍得到的結果是  %u4E03%25u90CE2007 其實這是標準的十六進位制

第二遍得到的結果是  七郎2007

相關文章