C#测试代码一:
Response.Charset = "GB2312"; //如果不加此句输出为乱码
Response.Write(Request.Cookies["name"].Value);
显示结果:测试; //结果正确C#测试代码二:
string name = Request.Cookies["name"].Value;
string SQL = "select * from user where name = '"+ name +"'";
Response.Write(SQL);
显示结果:select * from user where name = '?' //出现乱码已用方法一:
改web.config文件
requestEncoding="gb2312"
responseEncoding="gb2312"
已用方法二:
//Encoding unicode = Encoding.ASCII;
//Encoding unicode = Encoding.Unicode;
//Encoding unicode = Encoding.UTF7;
Encoding unicode = Encoding.UTF8;
byte[] unicodeBytes = unicode.GetBytes(Request.Cookies["name"].Value);
byte[] asciiBytes = Encoding.Convert(unicode, System.Text.Encoding.Default, unicodeBytes);
char[] asciiChars = new char[System.Text.Encoding.Default.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
string asciiString = new string(asciiChars);
Response.Write(asciiString);
急求各位问题出现原因及解决方案。
Response.Charset = "GB2312"; //如果不加此句输出为乱码
Response.Write(Request.Cookies["name"].Value);
显示结果:测试; //结果正确C#测试代码二:
string name = Request.Cookies["name"].Value;
string SQL = "select * from user where name = '"+ name +"'";
Response.Write(SQL);
显示结果:select * from user where name = '?' //出现乱码已用方法一:
改web.config文件
requestEncoding="gb2312"
responseEncoding="gb2312"
已用方法二:
//Encoding unicode = Encoding.ASCII;
//Encoding unicode = Encoding.Unicode;
//Encoding unicode = Encoding.UTF7;
Encoding unicode = Encoding.UTF8;
byte[] unicodeBytes = unicode.GetBytes(Request.Cookies["name"].Value);
byte[] asciiBytes = Encoding.Convert(unicode, System.Text.Encoding.Default, unicodeBytes);
char[] asciiChars = new char[System.Text.Encoding.Default.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
string asciiString = new string(asciiChars);
Response.Write(asciiString);
急求各位问题出现原因及解决方案。
1. HttpCookie cookie = new HttpCookie("name");
cookie.Value = System.Web.HttpUtility.UrlEncode("YourChineseHere",System.Text.Encoding.GetEncoding("GB2312"));
Response.Cookies.Add(cookie);2. HttpCookie cookie = Request.Cookies["name"];
string s = System.Web.HttpUtility.UrlDecode(cookie.Value,System.Text.Encoding.GetEncoding("GB2312"));