using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; namespace BO.Utils { public class UrlUtil { public static string GetBarCode(string barCode) { //如果是链接 //http://www.bwpsoft.com?code=WF20171108000003&name= if (barCode.Contains("?") && barCode.ToLower().Contains("http")) { barCode = barCode.Replace(ButcherAppContext.Context.UrlConfig.OutAddress+"?code=", ""); var andIndex = barCode.IndexOf("&", StringComparison.Ordinal); barCode = barCode.Substring(0, andIndex); } return barCode.Trim(); } public static string GetGoodsName(string barCode) { //如果是链接 if (barCode.Contains("name=")) { var index = barCode.IndexOf("name=", StringComparison.Ordinal); barCode = barCode.Substring(index+5); var name= barCode.Trim(); if (name == "qpbt") { return "去皮白条"; } if (name == "dpbt") { return "带皮白条"; } return name; } return ""; } private static NameValueCollection GetQueryString(string queryString) { return GetQueryString(queryString, null, true); } private static NameValueCollection GetQueryString(string queryString, Encoding encoding, bool isEncoded) { queryString = queryString.Replace("?", ""); NameValueCollection result = new NameValueCollection(StringComparer.OrdinalIgnoreCase); if (!String.IsNullOrEmpty(queryString)) { int count = queryString.Length; for (int i = 0; i < count; i++) { int startIndex = i; int index = -1; while (i < count) { char item = queryString[i]; if (item == '=') { if (index < 0) { index = i; } } else if (item == '&') { break; } i++; } string key = null; string value = null; if (index >= 0) { key = queryString.Substring(startIndex, index - startIndex); value = queryString.Substring(index + 1, (i - index) - 1); } else { key = queryString.Substring(startIndex, i - startIndex); } if (isEncoded) { result[(string) MyUrlDeCode(key, encoding)] = MyUrlDeCode(value, encoding); } else { result[key] = value; } if ((i == (count - 1)) && (queryString[i] == '&')) { result[key] = String.Empty; } } } return result; } private static string MyUrlDeCode(string str, Encoding encoding) { if (encoding == null) { Encoding utf8 = Encoding.UTF8; //首先用utf-8进行解码 string code = HttpUtility.UrlDecode(str.ToUpper(), utf8); //将已经解码的字符再次进行编码. string encode = HttpUtility.UrlEncode(code, utf8).ToUpper(); if (str == encode) encoding = Encoding.UTF8; else encoding = Encoding.GetEncoding("gb2312"); } return HttpUtility.UrlDecode(str, encoding); } } }