C#里HttpUtility.UrlEncode和JS端转换的心得
2010-02-12 14:01
309 查看
做网页开发一般都会用到Encode编码。在C#里,HttpUtility.UrlEncode()转换出来的编码,到了客户端用JS的decode方法转换后,发现总有个"+"号,原来字符串是没有“+”号的。
经分析后,发现问题原因在于,微软的HttpUtility.UrlEncode方法把空格转成"+"了( 如果原来是 "+" 则被转换成 "%2b" ) ,为了符合JS编码格式,把"+"替换成 "%20"即可。
如:
服务端:
message= HttpUtility.UrlEncode(message).Replace("+", "%20");
客户端:
decodeURIComponent(message);
PS. 后来用JAVA也测试一下,发现JAVA的Encode方法没这个问题,直接就把"+"转成"%20"了 。
经分析后,发现问题原因在于,微软的HttpUtility.UrlEncode方法把空格转成"+"了( 如果原来是 "+" 则被转换成 "%2b" ) ,为了符合JS编码格式,把"+"替换成 "%20"即可。
如:
服务端:
message= HttpUtility.UrlEncode(message).Replace("+", "%20");
客户端:
decodeURIComponent(message);
PS. 后来用JAVA也测试一下,发现JAVA的Encode方法没这个问题,直接就把"+"转成"%20"了 。
相关文章推荐
- C# HttpUtility.UrlEncode 与 Java URLEncoder.encode的转换方法,李逵与李鬼
- javascript中文编码/解析与C#ASP.NET中文编码/解析 C#: Server.UrlEncode() HttpUtility.UrlEncode() javascript: escape() encodeURI() encod
- javascript中文编码/解析与C#ASP.NET中文编码/解析 C#: Server.UrlEncode() HttpUtility.UrlEncode() javascript: escape() encodeURI() encodeURICom
- 看C#实现源码,可以参考算法 HttpUtility.UrlEncode
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
- 关于空格的转换,HttpUtility.UrlEncode的特例
- C#中Winform如何获取HTTPUtility.UrlEncode
- HttpUtility.UrlEncode 在 Encode 的时候, 将空格转换成加号('+'), 在 Decode 的时候将加号转为空格, 但是浏览器是不能理解加号为空格的, 所以如果文件名包含了空格, 在浏览器下载得到的文件, 空格就变成了加号
- C#实现HttpUtility.UrlEncode输出大写字母
- c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode
- C# HttpUtility.UrlEncode 与 JAVA URLEncoder.encode 区别
- 关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
- HttpUtility.UrlEncode编码重写
- 关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
- Server.UrlEncode、HttpUtility.UrlDecode的区别
- HttpUtility.UrlEncode、HttpUtility.UrlDecode、Server.UrlEncode、Server.UrlDecode的区分与应用
- Owin的URL编码怎么搞?以前都是HttpUtility.UrlEncode之类的,现在连system.web都没了,肿么办?
- Server.UrlEncode、HttpUtility.UrlDecode的区别