[英]Removing %20 from URI Relative Path
我正在生成從 1 個目錄到另一個目錄的相對路徑。 如果 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.UnescapeDataString
http://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring.aspx
string sRelativeFilePath = Uri.UnescapeDataString(new Uri(sAbsolutePath + "\\", false).MakeRelative(new Uri(filename)));
嘗試查看 Server.UrlDecode: http : //msdn.microsoft.com/en-us/library/6196h3wt.aspx
空格字符不是唯一被編碼的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.