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编码