public static string UrlPathEncode(string str) { if (string.IsNullOrEmpty(str)) { return(str); } int num = str.IndexOf('?'); if (num >= 0) { return(XmlaHttpUtility.UrlPathEncode(str.Substring(0, num)) + str.Substring(num)); } return(XmlaHttpUtility.UrlEncodeSpaces(XmlaHttpUtility.UrlEncodeNonAscii(str, Encoding.UTF8))); }