asp.net中gb2312与utf8编码与解码
asp.net 中,默认的url参数是用utf-8编码的,但是有很多时候不是用的默认编码,比如gb2312也是常用的之一,如下:
编码:
1 string tmp1 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.GetEncoding("GB2312"));
2
3 string tmp2 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.UTF8);
2
3 string tmp2 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.UTF8);
解码:
1 using System.Collections.Specialized;
2
3 NameValueCollection gb =
4 HttpUtility.ParseQueryString(context.Request.Url.Query, Encoding.GetEncoding("GB2312"));
5 string Msg = gb["QueryField"];
2
3 NameValueCollection gb =
4 HttpUtility.ParseQueryString(context.Request.Url.Query, Encoding.GetEncoding("GB2312"));
5 string Msg = gb["QueryField"];
其中tmp1和tmp2为两个不同编码的参数,解码部分的QueryField为其中的tmp1,因为tmp1是用gb2312编码的。如果要解码tmp2,将解码部分的编码“GB2312”改为"UTF-8" 即可。