您必須PercentEncode(/ EscapeDataString)這樣的字符串。
如同上述的用戶名問題 「xyz_domain \ abc_user」 必須在創建URI對象之前被編碼爲 「xyz_domain%5Cabc_user」到。
提取,你可以做PercentDecode(/ UnescapeDataString)使用來自烏里Class.You UnescapeDataString方法可以使用UnescapeDataString方法從C#Uri Class 這裏串的後後來是代碼
public static string GetUsername(this Uri uri)
{
if (uri == null || string.IsNullOrWhiteSpace(uri.UserInfo))
return string.Empty;
var items = uri.UserInfo.Split(new[] { ':' });
//Replace precent encoding in the username.
var result = Uri.UnescapeDataString(items[0]);
return result.Length > 0 ? result : string.Empty;
}
類似的方案可以應用到uri字符串的任何部分。只記得UnescapeDataString的EscapeDataStrings。
來源
2014-01-31 21:54:29
Vic
@AlexeiLevenkov你的意思是'\'?關於反斜槓業務的評論部分是挑剔的...... –
的確我嘗試說「檢查是否允許在該部分中使用...」...... [RFC](http://www.ietf.org/rfc/) rfc3986.txt)3.2.1節似乎不允許用戶信息... –