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);
急求各位问题出现原因及解决方案。

解决方案 »

  1.   

    always encode/decode, 
    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"));
      

  2.   

    UrlDecode也试过了。另外cookie是另一段运行在unix主机上的程序设置的。谢谢