再问编码问题
有一个网页是UTF-8编码,里面有一个链接,连到我们的网站http://localhost/zippo/search.aspx?Type=-1&ID=0&price=-1&key=虎
我们网站是用的GB2312编码,取key的时候,出来的值是乱码,试了N多方法,都不行.请大家帮帮忙.
方法1:
string utfinfo = Request.QueryString["key"].Trim();
// string gb2312info = string.Empty;
//
// Encoding utf8 = Encoding.UTF8;
// Encoding gb2312 = Encoding.GetEncoding("gb2312");
//
// // Convert the string into a byte[].
// byte[] unicodeBytes = utf8.GetBytes(utfinfo);
// // Perform the conversion from one encoding to the other.
// byte[] asciiBytes = Encoding.Convert(utf8, gb2312, unicodeBytes);
//
// // Convert the new byte[] into a char[] and then into a string.
// // This is a slightly different approach to converting to illustrate
// // the use of GetCharCount/GetChars.
// char[] asciiChars = new char[gb2312.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
// gb2312.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
// gb2312info = new string(asciiChars);
方法2:
string gb2312info = Server.UrlDecode(Request.QueryString["key"].Trim());
方法3:
string gb2312info = HttpUtility.UrlDecode(Request.QueryString["key"].Trim(), System.Text.Encoding.GetEncoding("gb2312"));
方法4:
string gb2312info = Request.QueryString["key"].Trim();
Encoding UTF8 = Encoding.UTF8;
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] buffer = gb2312.GetBytes(gb2312info); //还原byte[]
gb2312info = UTF8.GetString(buffer); //重新解码