URLパラメータGB 2312とUTF-8の符号化自動認識

1894 ワード

ネットで探して、後で使うためです.
直接コード:
public static string QueryStringDecode(string key)
        {
            HttpRequest Request = System.Web.HttpContext.Current.Request;

            if (Regex.IsMatch(
                HttpUtility.UrlDecode(Request.Url.Query, Encoding.GetEncoding("iso-8859-1")),
                @"^(?:[\x00-\x7f]|[\xfc-\xff][\x80-\xbf]{5}|[\xf8-\xfb][\x80-\xbf]{4}|[\xf0-\xf7][\x80-\xbf]{3}|[\xe0-\xef][\x80-\xbf]{2}|[\xc0-\xdf][\x80-\xbf])+$"
            ))
            {
                return Request.QueryString[key];
            }
            else
            {
                System.Collections.Specialized.NameValueCollection Rq = HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("gb2312"));
                return Rq[key];
            }
        }