import javax.servlet.*;
import javax.servlet.http.*;import java.io.*;
import java.sql.*;
//1.仔细检查连接串。
//2.确认有没有这个表
//3.如果出错了。先去后台看报错的信息。
//4.确认mysql已经启动了。
//5.把jdbc的驱动拷贝到tomcat
public class ShowRs extends HttpServlet { @Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException { Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();

out.println("<table border=1>");
out.println("<tr><td>Content:</td></tr>");
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=root");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from article"); 
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("cname") + "</td>");
out.println("</tr>");
}
out.println("</table>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt= null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}}
安装mysql时,我已经选了"gb2312".真不知道为什???有哪位高手指点下哦???/

解决方案 »

  1.   

    jdbc:mysql://localhost/bbs?user=root&password=root&useUnicode=true&characterEncoding=gb2312 URL也要GBK的 。。
      

  2.   

    在连接数据库的时候需要设置GBK
    jdbc:mysql://localhost/bbs?user=root&password=root&useUnicode=true&characterEncoding=gb2312
      

  3.   

    貌似MYSQL的GBK中文支持好一些,GB2312总是莫名其妙的出乱码-0-
      

  4.   

    写个测试类。。测试下,别在JSP程序里直接读。。
    前两天回复过个类似的帖子,最好证实是连接字符串的问题,楼主可以参考下。
    http://topic.csdn.net/u/20081214/19/203d87fc-8158-46ae-bfe3-44e3e5066000.html
      

  5.   

    找my.ini,加上default-character-set=GBK
      

  6.   

    虽然你安装mysql时,已经选了"gb2312".
    但是建表的时候还是要制定表字段的类型的。不然字段可能是utf-8的类型
      

  7.   

    你在建库时,右键,属性,字符集选择gbk的,整理选择gbk_chinese_ci就OK了。
      

  8.   

    还有一个办法就是在读取数据的时候转换编码
    比如 string a=new String(rs.getstring(1).getbyte("is0-8859-1"),gb2312);