从URI相对路径中删除%20

本文关键字:删除 路径 URI 相对 | 更新日期: 2023-09-27 17:50:34

我正在生成从一个目录到另一个目录的相对路径。如果OutputDirectoryName属性是包含空格的目录,则使用%20而不是空格对空格进行编码。我正在创建一个相对路径到一个windows文件夹,所以我必须有我的相对路径使用空格。是否有一种干净的方式来指定URI的编码方式?我知道我可以在relativePath.ToString()上做一个字符串替换,但我想知道是否有更好的实现。谢谢。

public string GetOutputDirectoryAsRelativePath(string baseDirectory)
{
    Uri baseUri = new Uri(baseDirectory);
    Uri destinationUri = new Uri(OutputDirectoryName);
    Uri relativePath = baseUri.MakeRelativeUri(destinationUri);
    return relativePath.ToString();
}

从URI相对路径中删除%20

可以使用

Uri.UnescapeDataString
http://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring.aspx

string sRelativeFilePath = Uri.UnescapeDataString(new Uri(sAbsolutePath + "''", false).MakeRelative(new Uri(filename)));

使用HttpServerUtility。UrlDecode Method (String)

尝试查看服务器。UrlDecode:http://msdn.microsoft.com/en-us/library/6196h3wt.aspx

空格字符不是唯一被编码的字符。