提交页面是ASP的GB2312编码格式,接收页面是ASP.net的UTF-8格式,如果不进行转换你就进行Request.QueryString["flag"]是只能得到英文字符的,而后的中文字符是会丢失的。解决方法是:
string CurrentStr = Request.Url.Query;
string CurrentStr = Request.Url.Query;
System.Collections.Specialized.NameValueCollection nv
= System.Web.HttpUtility.ParseQueryString(CurrentStr, System.Text.Encoding.GetEncoding
= System.Web.HttpUtility.ParseQueryString(CurrentStr, System.Text.Encoding.GetEncoding
("GB2312"));//这样便以GB2312编码格式进行解码
string flg= nv["flag"];
说明:
System.Web.HttpUtility.ParseQueryString 方法 (String, Encoding) 使用指定的 Encoding 将查询字符串分析成一个 NameValueCollection。
在返回的 NameValueCollection 中,URL 编码的字符将会进行解码,多次出现的同一查询字符串参数将单独列出,并使用逗号分隔每个值。
说明:
System.Web.HttpUtility.ParseQueryString 方法 (String, Encoding) 使用指定的 Encoding 将查询字符串分析成一个 NameValueCollection。
在返回的 NameValueCollection 中,URL 编码的字符将会进行解码,多次出现的同一查询字符串参数将单独列出,并使用逗号分隔每个值。