URL中特殊符号的处理
2018-06-18 00:52:49来源:未知 阅读 ()
问题描述
我们在对接第三方系统的时候通常需要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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- G++编译链接的那些事!G++的特殊使用方法[常用] 2020-04-19
- 括号生成 2020-04-09
- [题记]有效括号的嵌套深度-leetcode 2020-04-01
- Qt5 error LNK2019 无法解析的外部符号的解决办法 2020-02-14
- 用NDK生成cURL和OpenSSL库 2019-10-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash