Asp.net实现javascript escape/encodeURI/encodeURIComponent编码

  asp.net如何实现javascript客户端的escape/encodeURI/encodeURIComponent编码函数的功能。在使用ajax是,如果ajax发送给客户端的内容中包含中文,为了防止乱码,需要使用escape/encodeURI/encodeURIComponent进行编码。但是反过来,ajax接受的内容包含中文,如果没有配置好编码,没有统一(如调用页面使用GB2312编码,而请求的页面为utf-8编码),会导致ajax接受到的内容为乱码。

 

  为了编码不统一导致ajax乱码问题,我们可以将发送给ajax的内容进行编码,这样在客户使用任何编码都不会出现乱码了,即使和请求的页面编码不一致,只需要多增加一步,使用unescape/decodeURI/decodeURIComponent解码。

 

  asp.net要实现javascript客户端的escape/encodeURI/encodeURIComponent编码函数的功能的功能,需要引入Microsoft.JScript.Dll类库。

  配置web.config,引入Microsoft.JScript.Dll类库。

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation defaultLanguage="c#" debug="true">
      <assemblies>
         <add assembly="Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
  </system.web>
</configuration>

  asp.net和javascript的解码函数对应关系

asp.net编码函数 javascript编码函数 javascript解码函数
Microsoft.JScript.GlobalObject.escape escape unescape
Microsoft.JScript.GlobalObject.encodeURI encodeURI decodeURI
Microsoft.JScript.GlobalObject.encodeURIComponent encodeURIComponent decodeURIComponent

注意:不要使用Server.UrlEncode进行编码,结果不一样。

以“中国”为例,Microsoft.JScript.GlobalObject.escape编码后为%u4E2D%u56FD,Server.UrlEncode为%e4%b8%ad%e5%9b%bd,使用客户端解码函数后得到乱码!

加支付宝好友偷能量挖...


原创文章,转载请注明出处:Asp.net实现javascript escape/encodeURI/encodeURIComponent编码

评论(0)Web开发网
阅读(364)喜欢(0)Asp.Net/C#/WCF