当jdbc连接数据库时,如果输入的是中文,则在数据库中表现出来的是?号,而无法利用中文输出,请问这种情况怎么解决???

解决方案 »

  1.   

    Mysql的去相应版块问问吧。有专门的Mysql版块
      

  2.   

    这情况很很常见,为何有时在一些客户端中不能正常显示呢,以navaicat 为例,你安装时会有个编码选择,如果选的latin1  而你的数据库的编码用了utf8,这样看上去就不能正常显示,但是你如果在jdbc连接后,取数据时把编码设一致就可
      

  3.   

    还是有些不对,如果直接查询然后输出事不会出现乱码!但如果我用DAO模式,在一个.java文件下有student.SetName(rs.getString(1));    然后在jsp文件中有<%=student.GetName()%>这样就会出现中文乱码!这是为什么啊?
      

  4.   

    字符集问题
    set name 'gbk';
    show variables 'character%';
      

  5.   

    你在jsp中设置编码了吗?
      

  6.   


    调节一下编辑器的编码,比如myecplise的默认编码是iso的
      

  7.   

    数据库表的编码设置,确认是GBK?
      

  8.   

    怎么调节?我在jsp文件中设置了<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>。这样就不用调节了吧
      

  9.   

    还有最郁闷的就是下面代码测试是没问题的
    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%@   page   import= "java.sql.* "%> 
    <html> 
    <body> 
    <% 
    Class.forName( "com.mysql.jdbc.Driver"); 
    String   url   = "jdbc:mysql://localhost:3306/ttt?user=liu&password=liu"; Connection   conn=   DriverManager.getConnection(url); 
    Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String   upd= "INSERT   INTO   tt VALUES   ('测试 ');";
    String s="select name from tt";
    stmt.executeUpdate(upd);
     ResultSet rs=stmt.executeQuery(s);
     
    while(rs.next())
    out.println( rs.getString(1)); 
    stmt.close(); 
    conn.close(); 
    %> </body> 
    </html> 
      

  10.   

    问题已解决了!总结一下:把编码改为gbk,
     <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    然后少些了这句:
       <% request.setCharacterEncoding("gbk");%>
    再用记事本打开,点击另存为,打开另存为页面,在下面的编码改为ANSI格式的保存就可以了!