Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用查询字符串进行基于web的字符串分析时丢失字符_C#_String_Text_Webbrowser Control_Url Encoding - Fatal编程技术网

C# 使用查询字符串进行基于web的字符串分析时丢失字符

C# 使用查询字符串进行基于web的字符串分析时丢失字符,c#,string,text,webbrowser-control,url-encoding,C#,String,Text,Webbrowser Control,Url Encoding,我正在尝试使用查询字符串从我控制的iis web服务器请求网页 例如,我在winforms应用程序中有一个webbrowser控件,请求一个类似于“www.site.com/getpage.ashx?field=afsfgwesar+sere”的页面 当我尝试运行它时,它失败了,因为在服务器端,getpage.ashx找不到正确的字段 经过长时间的梳理,我发现字符串实际上已经从发送到浏览器的内容和接收到的内容发生了变化,即,当服务器开始使用加号时,加号丢失了 它以“afsfgwesar+sere

我正在尝试使用查询字符串从我控制的iis web服务器请求网页

例如,我在winforms应用程序中有一个webbrowser控件,请求一个类似于“www.site.com/getpage.ashx?field=afsfgwesar+sere”的页面

当我尝试运行它时,它失败了,因为在服务器端,getpage.ashx找不到正确的字段

经过长时间的梳理,我发现字符串实际上已经从发送到浏览器的内容和接收到的内容发生了变化,即,当服务器开始使用加号时,加号丢失了

它以“afsfgwesar+sere”开头,以“afsfgwesarsere”结尾。那么字符串在某个地方被重新格式化了

这就是我在服务器端获取字符串的方式-

string field = (string)context.Request.QueryString["field"];
正是在这一点上,我介入并看到了丢失的加号


有人知道我为什么会丢失加号以及如何取回加号吗?

由于不允许使用空格字符,加号被替换为空格字符

您可以在URL解码后插入
%2B
以“获取”加号

www.site.com/getpage.ashx?field=afsfgwesar%2Bsere

URL具有对字符串进行编码和解码的方法。要了解它的基本功能,还可以使用一个加号。

加号是querystring中的保留字符。它通常被解释为空格字符。只要看看搜索引擎,你就会注意到这一点

可以通过在将afsfgwesar+sere文本添加到查询字符串之前对其进行编码来防止这种情况。使用HttpUtility.UrlEncode执行此操作。使用HttpUtility.UrlDecode将其读回

有关更多信息,请阅读:

在传输之前,您能告诉我如何重新格式化吗?在某种程度上,我可以自动格式化它回到原来的格式?