Sam*_*amo 28 c# asp.net-mvc urlencode
我有一些使用JavaScript编码的查询文本,但我遇到了一个用例,我可能需要在服务器端编码相同的文本,并且发生的编码不一样.我需要它是一样的.这是一个例子.
我进入"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正在编码我的空格但不编码我的转义引号.
我真的需要它来做两件事,否则搜索代码完全对我不利(我无法控制搜索代码).
提示?
por*_*ges 54
UrlPathEncode不会逃脱,"因为它们不需要在路径组件中进行转义.
Uri.EscapeDataString 应该做你想做的事.
有几个选项可用,最快的可能是使用UrlEncode然后执行string.replace来交换+字符%20.
就像是
HttpUtility.UrlEncode(input).Replace("+", "%20");
Run Code Online (Sandbox Code Playgroud)