C#写一个js的escape函数

来源:互联网 发布:免费群发信息软件 编辑:程序博客网 时间:2024/06/05 07:51
 

由于某种需要,要在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

原创粉丝点击