0

我有一个string要编码的 URL,如下所示:

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

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

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

有任何想法吗?

4

3 回答 3

0

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

    string url = "/Some/Url/To/A/File/Attachment#image.gif";
    Console.WriteLine(url.Replace("#", HttpUtility.UrlEncode("#")));
于 2013-09-05T10:07:24.193 回答
0

您可能必须手动完成。正则表达式查找和替换可能是一个不错的选择。

var str = "/Some/Url/To/A/File/Attachment#image.gif";
var str2 = Regex.Replace(str, "#", "%23");
于 2013-09-05T10:09:35.907 回答
0

我认为就您而言,最简单的解决方案是:

string encodedString = originalString.Replace("#", "%23");

参考:

http://www.degraeve.com/reference/urlencoding.php

http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx

于 2013-09-05T10:11:32.817 回答