我正在尝试使用以下代码对网址进行编码;
var encodedUrl = HttpUtility.UrlEncode("http://www.example.com");
var decodedUrl = HttpUtility.UrlDecode("http%3A%2F%2Fwww%2Eexample%2Ecom%2F");
我正在使用谷歌网站管理员工具api,这个api需要一个URL,如上面的decodingUrl变量所示。每个字符都在那里编码。
当我使用httputility编码功能时,我得到以下结果;
http%3a%2f%2fwww.example.com
如何使用编码变量,以便对网址中的每个字符进行编码?
答案 0 :(得分:4)
我很确定HtmlUtility和AntiXss(用于编码网址的另一个MS工具)在这里不会有用。一个 ”。”在URL中被认为是有效的,因此不需要编码。
我认为您将不得不对您编码的字符串进行后期处理,以进一步编码在Google网站管理员工具API中无效的其他字符。
即。做这样的事......
var encodedUrl = HttpUtility.UrlEncode("http://www.example.com")
.Replace(".", "%2E");
...假设“。”是你遇到问题的唯一角色。
答案 1 :(得分:4)
句点不是URL中的保留字符,因此不会对其进行编码。有关优雅的解决方案,请参阅this question and answer。