直接在地址栏传中文出现乱码(解决乱码把整个地址栏转码在解码)

 

 

加载页面调用方法

url = Request.RawUrl;//得到地址栏路径
retResult = InitChineseUrl(url.Trim().ToString());

加码的方法

public static string InitChineseUrl(string chineseUrl)
{
Uri url = new Uri(chineseUrl);
System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(url.Query, System.Text.Encoding.GetEncoding("UTF-8"));
string query = "";
for (int i = 0; i < nv.Count; i++)
{
if (query.Trim() == string.Empty)
{
query = "?" + nv.Keys[i] + "=" + HttpUtility.UrlEncode(nv[i], System.Text.Encoding.GetEncoding("gb2312"));

}
else
{
query += "&" + nv.Keys[i] + "=" + HttpUtility.UrlEncode(nv[i], System.Text.Encoding.GetEncoding("gb2312"));
}
}
string u = chineseUrl.Split('?')[0] + query;
return u;
}

解码的方法

keyword = HttpUtility.UrlDecode(Request.QueryString["KeyWord"].Trim().ToString(), System.Text.Encoding.GetEncoding("gb2312"));

如何还是会出现乱码在web.config中配置(system.web节点中)

 <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/>

posted @ 2014-05-07 13:22  牡丹  阅读(1405)  评论(0)    收藏  举报