页面为GB2312,其余中文也显示正常,只有这部分用GB2312还是会出现乱码,所以换成了utf-8
代码:   byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(words.Text);
        SqlCmd.Parameters["@words"].Value = Encoding.GetEncoding("UTF-8").GetString(bs);这样以后,乱码问题解决了,可以正常显示汉字,但奇数个汉字最后一个字被替换成了问号?,偶数个正常
例:输入 “哈哈” 显示“哈哈”
    输入  “哈哈哈”  显示  “哈哈?”请高手不吝赐教,感激不尽!若有其余解决乱码方法,请教!(很奇怪的是整个页面只有这一个部分显示不正常。。困惑)

解决方案 »

  1.   

     byte[] bs = Encoding.GetEncoding("UTF-8").GetBytes(words.Text); 
     SqlCmd.Parameters["@words"].Value = Encoding.GetEncoding("UTF-8").GetString(bs); 或
     byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(words.Text); 
     SqlCmd.Parameters["@words"].Value = Encoding.GetEncoding("GB2312").GetString(bs); 
      

  2.   

    Dim bs = Encoding.GetEncoding("GB2312").GetBytes("啊啊啊")
            Response.Write(Encoding.GetEncoding("GB2312").GetString(bs))
    正常啊,不知楼主的目的是什么,我这是VB的
      

  3.   

            String InsertW = "Insert into addwords(username,words) values (@username,@words)";
            SqlCommand SqlCmd = new SqlCommand(InsertW, myCn);
            SqlCmd.Parameters.Add(new SqlParameter("@username", SqlDbType.VarChar, 50));
            SqlCmd.Parameters["@username"].Value = Session["username"].ToString();
            SqlCmd.Parameters.Add(new SqlParameter("@words", SqlDbType.VarChar, 50));
            byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(words.Text);
            SqlCmd.Parameters["@words"].Value = Encoding.GetEncoding("utf-8").GetString(bs);
            SqlCmd.ExecuteNonQuery();这是一个简单的留言板,需要先将用户名和留言内容插入数据库,然后再select显示出来,结果怎么显示都是乱码,只有这种方法能正常显示但奇数个汉字最后被替换成问号,应该不是页面编码问题因为其余中文都正常显示,还有username也正常显示,就是words不正常,help~~
      

  4.   

    很奇怪为什么你要这么绕弯子
            byte[] bs = Encoding.GetEncoding("GB2312").GetBytes(words.Text); 
            SqlCmd.Parameters["@words"].Value = Encoding.GetEncoding("utf-8").GetString(bs); 为什么不
           SqlCmd.Parameters["@words"].Value = words.Text;