特殊字符到查询字符串.NET

use*_*089 1 vb.net query-string

我需要发送以下查询字符串:

http://prod.intranet.siemens.com.br/drvs/index.aspx?page=2&pag=4&varpatch=%20C:\Documents%20and%20Settings\OPE253\My%20Documents\Ca$@#!
Run Code Online (Sandbox Code Playgroud)

然后我尝试将此分配给一个字符串,但.NET打破了字符串

   http://prod.intranet.siemens.com.br/drvs/index.aspx?page=2&pag=4&varpatch=%20C:\Documents%20and%20Settings\OPE253\My%20Documents\Ca$@
Run Code Online (Sandbox Code Playgroud)

'#"不会出现在查询字符串中

有任何想法吗?

Chr*_*isF 6

不,因为"#"是保留字符.它用于链接到网页中的特定位置:

http://en.wikipedia.org/wiki/HTML_anchor#Overview

因此浏览器将URL拆分为"#".

您需要将"#"编码为"%23"

你需要使用String.Replace:

Dim outputURL As String = inputURL.Replace("#", "%23")
Run Code Online (Sandbox Code Playgroud)

HttpUtility.UrlEncode(仅编码查询字符串):

Dim outputQueryString As String = HttpUtility.UrlEncode(inputQueryString)
Run Code Online (Sandbox Code Playgroud)