问题描述:
当使用.NET编写Winform程序,构建Http Post 请求,并传递若干参数给远程服务器时,如果参数中包含加号'+'等符号时,http请求发送后,服务器收到并解析时,加号会被解码为空格。
举例说明:
若参数中含有:fileName = "[宫崎骏作品全集+Ghibli相关作品].txt"
此时,传递到服务器上以后,服务器接收到的数据会变成:[宫崎骏作品全集 Ghibli相关作品].txt
加号会变成空格!
(如果全程都使用的utf-8编码格式)
错误原因:
我没有深究原因,宽泛的说,就是在传输前后过程中,经历的几次编码和解码标准不同,导致加号、空格等字符的错误。
简单的解决方法:
遇到这种情况时,一种快速的解决方法是: 把参数中所有的加号“
+”,替换为“
%2B”即可
(可能这种方法并不好,应该可以采用传递前对数据进行某格式的encode,获取数据时进行decode即可)
-
顶

本文介绍了一个在使用.NET编写Winform程序时遇到的问题:通过HttpPost发送请求时,参数中的加号被服务器错误解析为空格。文章提供了简单有效的解决方法,即在发送前将加号替换为%2B。
1757

被折叠的 条评论
为什么被折叠?



