直接在地址栏传中文出现乱码(解决乱码把整个地址栏转码在解码)
加载页面调用方法
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"/>
浙公网安备 33010602011771号