我在JSP文件里加的是<%@ page contentType="text/html;charset=GBK" %>和
String dbUrl="jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=GBK";
我在安装MYSQL的时候选择的字符编码是gbk
在MYSQL里的查询能够显示中文(在命令行下的查询
但访问JSP文件的时候出现了如下的形式?·? ???????§ 
我也将字符编码改成过gb2312,但还是显示乱码··
谢谢各位!!

解决方案 »

  1.   

    那是安装mysql的问题哦,本人也曾经见到过这样的情况哦
      

  2.   

    你要将丛数据库中取出得数据再进行一次编码,用这个函数 (自己写的)public String charEncoding(String str){ String temp; if(str==""||str==null) return null; Byte [] byte=str.getByte("GBK"); temp=new String(byte); retrun temp;}就可以了。
      

  3.   

    在mysql的安装目录下找到my.ini
    在里面找到:default-character-set=将值改成gbk或gb2312或utf8都可以,
    如下面:default-character-set=utf8
      

  4.   

    <%request.setEncodingType("gbk")%>  大概是这样写 ,就是request.设置 编码 
      

  5.   

    <%request.setCharacterEncoding("GBK");%>
    放到你自己的jsp代码上面就可以了
      

  6.   

    我的代码很简单啊就这个·<%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="java.sql.*"%>
    <%@ page language="java" contentType="text/html;charset=gb2312" %>
    <html>
    <head
    </head>
    <body>
    <%
    try{
    Connection con=null;
    Statement stmt=null;
    ResultSet rs=null;
    String driver="com.mysql.jdbc.Driver";
    Class.forName(driver);
    String dbUrl="jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=gb2312";
    String dbUser="root";
    String dbpwd="12345678";
    con=DriverManager.getConnection(dbUrl,dbUser,dbpwd);
    stmt=con.createStatement();
    rs = stmt.executeQuery("SELECT * from books");
    out.println("<table border=1 width=400>");
    out.println("<tr><th>编号</th><th>名字</th><th>标题</th></tr>");
    while (rs.next())
    {out.println("<tr>");
    out.println("<td>"+rs.getString("id")+"</td>");
    out.println("<td>"+rs.getString("name")+"</td>");
    out.println("<td>"+rs.getString("title")+"</td>");
    out.println("</tr>");
    }
    out.println("</table>");
    rs.close();
    stmt.close();
    con.close();
    }
    catch(Exception e)
    {out.println(e.getMessage());
    }
    %>
    </body></html>gbk gb2312 utf8 还有在my.ini里设置`` 在安装时的是设置都试过了,但还是不行·哎·
      

  7.   

    ? 应该编码不统一造成的你的数据库和tomcat是放在同一台机器的吗?你建表的时候有没有设置编码格式? 你先从java中取出数据库的数据然后打印一下看看是不是乱码,如果是乱码的话同步编码。最好都用UTF-8
      

  8.   

    开始时  加上这一句  <%request.setCharacterEncoding("GBK");%>   
    <%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>