编码#登录url

本文关键字:url 登录 编码 | 更新日期: 2023-09-27 18:30:12

我在string中有一个要编码的URL,它看起来像这样:

"/Some/Url/To/A/File/Attachment#image.gif"

我想对这个字符串进行编码,以便对#进行编码,但/应该保持原样。所以我不能使用HttpUtility.UrlEncodeHttpUtility.HttpEncode也不能工作,因为它不编码#符号

有没有一种方法可以对这个字符以及可能的其他字符进行编码?也许有一种方法可以使用HttpUtility.UrlEncode并告诉它不要编码/(斜杠)?

有什么想法吗?

编码#登录url

如果你只想处理#,你可以简单地替换它:

    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