编码#登录url
本文关键字:url 登录 编码 | 更新日期: 2023-09-27 18:30:12
我在string
中有一个要编码的URL,它看起来像这样:
"/Some/Url/To/A/File/Attachment#image.gif"
我想对这个字符串进行编码,以便对#
进行编码,但/
应该保持原样。所以我不能使用HttpUtility.UrlEncode
,HttpUtility.HttpEncode
也不能工作,因为它不编码#
符号
有没有一种方法可以对这个字符以及可能的其他字符进行编码?也许有一种方法可以使用HttpUtility.UrlEncode
并告诉它不要编码/
(斜杠)?
有什么想法吗?
如果你只想处理#,你可以简单地替换它:
string url = "/Some/Url/To/A/File/Attachment#image.gif";
Console.WriteLine(url.Replace("#", HttpUtility.UrlEncode("#")));
您可能需要手动操作。Regex查找并替换可能是一个不错的选择。
var str = "/Some/Url/To/A/File/Attachment#image.gif";
var str2 = Regex.Replace(str, "#", "%23");
我认为在您的情况下,最简单的解决方案是:
string encodedString = originalString.Replace("#", "%23");
参考文献:
http://www.degraeve.com/reference/urlencoding.php
http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx