在servlet中,从mqsql查找varchar字段的name属性上来,再传递到jsp页面,当我的jsp页面的字符编码是gb2312的时候,显示的是“?”,改为UFT8的时候,显示的也不知道是什么文字 ,如果从mysql查找的是int类型,却显示正常大伙看看怎样才能显示中文  (我的mysql是安装时的默认的编码方式)

解决方案 »

  1.   

    你装的时候选的默认编码是不行的,数据库的中文都会是乱码,重装下吧,装的时候选择gbk编码。
      

  2.   

    我以前安装mysql的时候用的是utf-8,用的时候没出过问题,你也可以试一试用utf-8安装mysql
      

  3.   

    最好改成utf8的,程序全部也用utf-8的编码
      

  4.   

    你在获取的页面上在获取的时候设置一下编码格式
    如:在页面上获取时用String name=request.getParameter("Name").getBytes("ISO-8859-1");关于处理编码问题时你可以用个过滤器先过滤在对其进行处理
      

  5.   

    lz不用那么麻烦的了。。我也遇到过这个问题的在mysql安装目录下有个my.ini文件里的两个地方修改即可:
    default-character-set=gbk
    default-character-set=gbk
    默认安装的mysql默认的字符集不是这样的。
    你修改下就好了
    但是我以前是修改了还没好。然后把所有的java页面都用的是UTF-8的字符集编码
    之后就完全ok的了。java页面最好是使用UTF-8,而不是gbk。
      

  6.   

    开始按默认安装,数据库显示的是正常的中文,后来重新安装,改为utf了,然后数据库就显示乱码了
      

  7.   

    你安装 mysql的时候选择utf8,建立数据库和表格也选择utf8格式,应该会没有问题的
      

  8.   

    建议页面改成utf-8的形式,mysql默认的编码方式是utf-8 在一个你数据库中是不是乱码
      

  9.   


    那个数据库就用我说的方法啊。在my.ini里面修改即可。
    只用gbk。不用utf。。然后页面全部用UTF-8就可以了的。
    修改完了之后要重启mysql服务。
      

  10.   

    不知道楼主是用mysql客户端查看的数据?还是说程序访问的数据是乱码?
    可能使用mysql客户端会是乱码,因为,本地编码是gbk,它把数据库的数据按gbk显示出来了,而
    数据编码却是utf8,
    改成utf8,
    用程序访问应该没问题
      

  11.   

    数据库默认的编码是拉丁文.所以一定要该为支持中文的字符集才可以,
    gb2312  gbk  utf-8都可以.
      

  12.   

    request.setCharacterEncoding("gb2312");
    response.setCharacterEncoding("gb2312");
      

  13.   

    数据库编码:GBK java.sql.Connection conn; 
    java.sql.Statement st; 
    java.sql.ResultSet rs; Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    conn= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/usp?characterEncoding=GBK","root","database"); 
    st = conn.createStatement(); String c = "廖嫚玥"; 
    c=new String(c.getBytes("iso-8859-1"),"GBK"); 
    st.execute("insert into S_INSURANCE_DATA(cname) values('"+c+"')"); 
    rs = st.executeQuery("select cname from S_INSURANCE_DATA"); 
    String b = ""; 
    while(rs.next()){ 
    b = new String(rs.getString("cname")); 
    out.println(new String(b.getBytes("iso-8859-1"),"GBK")); 

    结果:廖?牜h ??? 
    求解!
      

  14.   

    [Quote=引用 17 楼 LeaCen 的回复:]
    数据库编码:GBK 
    ..........
    String c = "廖嫚玥"; 
    //c=new String(c.getBytes("iso-8859-1"),"GBK"); 
    ..........
    while(rs.next()){ 
    b = new String(rs.getString("cname")); 
    //out.println(new String(b.getBytes("iso-8859-1"),"GBK")); 
    out.println(b);

      

  15.   

    我的博客中关于中文乱码的文章,可以作参考: http://blog.sina.com.cn/s/blog_5108ece10100czm3.html