.NET解码URI时删除所有空格

时间:2014-08-22 15:38:58

标签: javascript asp.net vb.net uri

我正在发送一个参数,从Javascript到.NET。该参数可能包含多个空格,如'John [此处为3个空格,stackoverflow未显示它们] Smith',我需要留下空格。但是,看起来这些空格在.NET中消失了。为了解决这个问题,我确保在客户端对URI进行编码,并在服务器端对其进行解码。代码(在VB.NET中)看起来像这样:

<AjaxPro.AjaxMethod()> _
Public Function GetSearch(ByVal strValue As String) As String
 strValue = HttpUtility.UrlDecode(strValue)
 ...
End Function

UrlDecode之前,strValue看起来像John%20%20%20Smith'。之后它看起来像John Smith。有谁能告诉我如何解决这个问题?

我正在使用.NET 2.0 Web窗体。

编辑:根据以下建议之一,我用(&符号)替换了所有空格。我在调试时可以看到所有空格,但是,我的数据库是SQL服务器,由于某种原因它会将常规空间视为不同于(&符号)nbsp;空格,因此查询不返回正确的值。我花了一些时间才弄清楚这一点,因为我无法用肉眼看出它的差异。

1 个答案:

答案 0 :(得分:0)

好的,我能够通过用非中断空格替换所有空格来解决前端问题。然后我不得不用我的SQL存储过程中的常规空格替换非中断空格(否则查询将无效)。