根据urlencode.asp,当请求被提交时,它们是被URL编码的,例如,空间被转换为%20。
我对此有意见!在表单中提交它将按其应有的方式将其转换为%21。然而,HttpUtility.UrlEncode (或其WebUtility合作伙伴)或Uri.EscapeDataString都将返回!这是否一种预期的行为?我应该如何从c#对输入进行编码,以便它能够转换正确的值?
发布于 2015-06-19 08:04:00
感叹号被认为是URL安全的ASCII字符,因此不编码百分比.
来自MSDN
UrlEncode方法URL-对被认为是URL安全的一组ASCII字符中的任何字符进行编码。空格被编码为ASCII "+“字符。URL安全的ASCII字符包括ASCI字符(A到Z和a到z)、数字(0到9)和一些标点符号。下表列出了被视为URL安全的ASCII字符的标点符号。
该表包含- _ . ! * ( )
更新
根据这个答案的说法,Uri.EscapeDataString在处理.NET 4.5项目时应该对.NET进行编码,但我无法在当前的机器上测试它。以前的EscapeDataString框架中的.NET不对上面的字符进行百分比编码。您可能只需使用String.Replace并替换转义URI中的上述字符。
https://stackoverflow.com/questions/30932903
复制相似问题