URL中特殊符号的处理
2017-08-17 22:34
357 查看
问题描述
我们在对接第三方系统的时候通常需要get或post来传输数据,但此时如果参数中存在&% #*!包括空格等特殊符号的时候就无法正常请求具体表现在参数获取不正确或者获取不到参数,甚至有时候会直接截断发送的请求。解决方法
特殊字符在url中不能正常传输我们首先肯定是考虑对其进行URL编码,不同语言url编码封装的方法可能有所不同,因为我这里是使用c# 后台跟第三方系统对接 ,所以直接考虑c# 类库封装的方法了c#中有三种url编码的方式分别是
1 HttpUtility.UrlEncode
2 Server.UrlEncode
3 Uri.EscapeUriString
这里就不详细对比它们的优缺点了 ,因为这里我目的在于问题的解决和记录,所以只描述一下过程中遇到的问题和该注意的地方,
1 首先HttpUtility.UrlEncode 对空格的处理是使其变成+ 的符号比如你有一个这样的字符串 : "下单时间:2017/3/28 23:05:51" 注意其中有一个空格对应生成的字符串是:"%e4%b8%8b%e5%8d%95%e6%97%b6%e9%97%b4%3a2017%2f3%2f28+23%3a05%3a51" ,空格变成了+符号,所以传输的时候应该做相应的处理,
我这里的解决方法是把编码后的字符串中的+符号再替换成对应的编码格式, 如utf8 空格应该编码成 %20,所以只要把+符号替换成 %20,
2 第二要注意的就是Uri.EscapeDataString 虽然没有所有的空格变加号的问题但是被编码的字符串有长度限制,限制的长度32766个字符 超过则会抛出异常 ,其实用方式如下
以上两种方式默认编码都是utf8 编码当然也可以换成其它格式。
博主网址:http://www.siyouku.cn
本文永久更细地址:http://siyouku.cn/article/6820.html
相关文章推荐
- 在传参时,url参数中包含+、空格、=、%、&、#等特殊符号的处理
- url参数中有+、空格、=、%、&、#等特殊符号的处理
- URL特殊符号的处理
- URL特殊符号处理
- 简单实例处理url特殊符号&处理(2种方法)
- URL中特殊符号的处理
- 关于utf-8编码的ajax中url传中文及特殊符号乱码的实际可用处理办法
- 简单实例处理url特殊符号&处理(2种方法)
- 简单实例处理url特殊符号&处理
- url参数中有+、空格、=、%、&、#等特殊符号的处理
- 在传参时,url参数中包含+、空格、=、%、&、#等特殊符号的处理
- Mybatis 处理集合 特殊符号
- mybatis在xml文件中处理特殊符号(大于号小于号等的方法)
- 批处理中的特殊符号
- 批处理常用特殊符号
- html 传递url参数特殊符号 & 传递网址
- XAML中的特殊符号几空白字符处理
- 特殊符号的处理
- url 中特殊字符处理
- mfc通过URL传递参数时处理特殊字符