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" 即可。