我有一些正在用JavaScript编码的查询文本,但我遇到了一个用例,我可能必须在服务器端编码相同的文本,并且发生的编码不是相同。我需要它是一样的。这是一个例子。Url编码引号和空格
我在搜索框中输入"I like food"
并点击search
按钮。 JavaScript将其编码为%22I%20like%20food%22
假设我在服务器端获取与请求对象上的字符串相同的值。它看起来像这样:"\"I like food\""
当我使用HttpUtility.UrlEncode(value)
时,结果是"%22I+like+food%22"
。如果我使用HttpUtility.UrlPathEncode(value)
,结果是"\"I%20like%20food\""
所以UrlEncode
正在编码我的引号,但使用空格的+
字符。 UrlPathEncode
正在编码我的空间,但不编码我的转义引号。
我真的需要它来做,否则搜索代码完全borks我(我无法控制搜索代码)。
小贴士?
做一个字符串搜索/替换以替换%20的空格,然后执行常规UrlEncode? – 2011-01-27 18:17:00
@Marc乙:这不会使UrlEncode对“%”字符进行编码(每个空间导致%2520)? UrlPathEncode非常奇怪的行为。至少UrlEncode将文件从空格转换为“+”。 UrlPathEncode sais没有关于不转换引号... – 2011-01-27 18:35:41
嗯。好点子。我猜你可以用其他方式,UrlEncode首先,然后用%20's搜索/替换+' – 2011-01-27 18:38:12