/// <summary> /// UTF-8解码(含%的) /// </summary> /// <param name="str">需要解码的字符串</param> /// <returns></returns> public static string URLDecode(string str) { //将str转为小写 string lowerUrl = str.ToLower(); //判断str中是否包含%,如果不包含%就不需要解码 if (lowerUrl.IndexOf('%') != -1) { //判断str中是否包含%E,如果不包含直接用GB2312解码 if (lowerUrl.IndexOf("%e") != -1) { //以UTF-8对str进行解码 string stringUrl = System.Web.HttpUtility.UrlDecode(str, Encoding.GetEncoding("UTF-8")); //判断解码后的字符串是否为UTF-8编码 if (CheckIsUTF8(stringUrl)) return stringUrl; else return System.Web.HttpUtility.UrlDecode(str, Encoding.GetEncoding("GB2312")); } return System.Web.HttpUtility.UrlDecode(str, Encoding.GetEncoding("GB2312")); } return str; }