我有一些用 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/