转载:http://blog.csdn.net/qqstrive/article/details/8229601
通过webrequest的post传输数据的时候,如果url里面的参数带有‘%’,那么在取地址栏的参数的时候会出现空指针,或者是错误。
string URL = http://127.0.0.1/file.do ;
string postdata = "domethod=list&content=30%";
解决办法:
对于postdata参数中的content 进行unciond或者是base64编码,再进行传输到服务端,服务端接收后再进行解码操作即可。
base64编码%变为JQ==
unicode编码 %变为u0025
首先先来说一下为什么要urlencode
http://blog.csdn.net/henulwj/article/details/7916557
1.为了正常获取值
字符 特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
表示目录路径 %2F
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
当url中含有以上列表中的一些字符时就无法准确的接收其中的值。
2.如果要传递的参数不想让人一眼就看出来的话,也可以urlencode一下,url就会变成一段编码后的长长的字符串。
至于urldecode就没什么好说的了
就是把urlecode编码后的url字符串再解码成原来的url
你encode了
肯定需要反向操作一下,即decode
注:.net下面是用HttpUtility.UrlEncode()和HttpUtility.UrlDecode()
来实现url的encode和decode操作的