c# - URL 编码引号和空格

标签 c# asp.net-mvc urlencode

我有一些用 JavaScript 编码的查询文本,但我遇到了一个用例,我可能必须在服务器端对相同的文本进行编码,而发生的编码并不相同。我需要它是一样的。这是一个例子。

我在搜索框中输入“我喜欢食物”,然后点击搜索 按钮。 JavaScript 将其编码为 %22I%20like%20food%22

假设我在服务器端的请求对象上获得了与字符串相同的值。它看起来像这样:"\"I like food\""

当我使用 HttpUtility.UrlEncode(value) 时,结果是 "%22I+like+food%22"。如果我使用 HttpUtility.UrlPathEncode(value),结果是 "\"I%20like%20food\""

所以 UrlEncode 对我的引号进行编码,但使用 + 字符作为空格。 UrlPathEncode 正在对我的空格进行编码,但并未对我的转义引号进行编码。

我确实需要它来完成这两项工作,否则搜索代码对我来说完全是个问题(而且我无法控制搜索代码)。

提示?

最佳答案

UrlPathEncode 不会对 " 进行转义,因为它们不需要在路径组件中进行转义。

Uri.EscapeDataString应该做你想做的事。

关于c# - URL 编码引号和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820167/

相关文章:

c# - 检查 RoutedEvent 是否有任何处理程序

c# - 使用 SelectPdf .NET 在电子邮件中附加 pdf 而不保存 PDF

asp.net-mvc - 在 ASP.NEt MVC 3 中的 Html.BeginForm() 中传递 DropDownList 的 SelectedValue

Java 编码问题与 Ñ

python - Http POST 重音编码

c# - 为什么这种扩展方法不起作用?

c# - Xamarin Forms - 如何为 Xamarin Forms 中的标签页编写单元测试?

c# - 在 Razor-4 View 中访问模型属性

javascript - MVC Action 通过 Jquery AJAX 请求接收到错误的参数

java - 修复局部错误 - HRS_REQUEST_PARAMETER_TO_HTTP_HEADER