C#的urlencode
遇到一个问题,通过queryString传参的时候,空格被encode成了+,而前端的空格对应的应该是%20。
搜了下为什么,看到W3C的空格会被转为+,而RFC2395则是%20。
而我使用的是HttpUtility.UrlEncode(),它是编码为+的。
然后HttpUtility.UrlPathEncode(),则是对Path进行编码,虽然会把空格转为%20,但是不会对+进行编码。
最终解是使用Uri.EscapeDataString()进行编码。
遇到一个问题,通过queryString传参的时候,空格被encode成了+,而前端的空格对应的应该是%20。
搜了下为什么,看到W3C的空格会被转为+,而RFC2395则是%20。
而我使用的是HttpUtility.UrlEncode(),它是编码为+的。
然后HttpUtility.UrlPathEncode(),则是对Path进行编码,虽然会把空格转为%20,但是不会对+进行编码。
最终解是使用Uri.EscapeDataString()进行编码。