您必须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节似乎不允许用户信息... –