Ответ 1
Использовать Uri.UnescapeDataString?
http://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring.aspx
Я создаю относительный путь из каталога 1 в другой. Если свойство OutputDirectoryName представляет собой каталог, содержащий пробелы, пробелы кодируются с использованием %20, а не пробела. Я создаю относительный путь к папке Windows, поэтому я должен иметь свой путь relatiave, используя пробелы. Есть ли простой способ указать, как кодируется URI? Я знаю, что мог бы сделать замену activeng на 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
Используйте HttpServerUtility.UrlDecode Method (String)
string sRelativeFilePath = Uri.UnescapeDataString(new Uri(sAbsolutePath + "\\", false).MakeRelative(new Uri(filename)));
Попробуйте найти Server.UrlDecode: http://msdn.microsoft.com/en-us/library/6196h3wt.aspx
Символ пробела не является единственным, который закодирован.