我有一些包含非英文字符的file://链接,这些字符已经以UTF-8 UrlEncoded的形式出现。为了让这些链接在浏览器中能够使用,我需要重新对它们进行编码。
file://development/H%C3%A5ndplukket.doc
变成
file://development/H%e5ndplukket.doc
我有以下代码是可行的:
我有以下代码是可行的:
public string ReEncodeUrl(string url)
{
Encoding enc = Encoding.GetEncoding("iso-8859-1");
string[] parts = url.Split('/');
for (int i = 1; i < parts.Length; i++)
{
parts[i] = HttpUtility.UrlDecode(parts[i]); // Decode to string
parts[i] = HttpUtility.UrlEncode(parts[i], enc); // Re-encode to latin1
parts[i] = parts[i].Replace('+', ' '); // Change + to [space]
}
return string.Join("/", parts);
}
有没有更简洁的方法来完成这个任务?