通过javaBean往数据库里插入中文信息不会出现乱码,但是提取到javabean输出到jsp页面就出现乱码数据库编码是GBK;jsp页面:
<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="bbs.com.Posts" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>主页</title>
</head>
<jsp:useBean id="sqlB" scope="page" class="bbs.com.SqlBoard"/>
<body background = "1d.jpg">
&nbsp;&nbsp;<img src = "dd.gif">
<br><br>
<center><img src = "ys.jpg"  width= 250 hight = 150></center>&nbsp;&nbsp;<a href="load/load.jsp">登陆</a>
<a href="load/register.jsp">注册</a>
<br>
<br>
<hr width = "85%" size = 4 align = center color = "#">
<br>
<table  align="center" border = "3" bgcolor = "#e2f6cd"  width = 80% rules = "rows">
<% 
ArrayList<Posts> alist = null;
alist = sqlB.showPosts();//获得arraylist对象
%>
<tr>
<th>ID</th>
<th>标题</th>
<th>发帖时间</th>
<th>作者</th>
</tr>
<%
for(int i=0;i<alist.size();i++){
out.println("<tr>");
out.println("<td>");
out.println(alist.get(i).getId());//输出id
out.println("</td>");
out.println("<td>");
%>
<b> <a href = "postsManage/visiter.jsp?id=<%=alist.get(i).getId()%>"><%=alist.get(i).getTitle()%></a></b>
<%
out.println("</td>");
out.println("<td>");
out.println("<font size = 1  >");
out.println(alist.get(i).getDate());//输出发帖时间
out.println("</font>");
out.println("</td>");
out.println("<td>");
out.println("<font size = 1 >");
out.println(alist.get(i).getUserName());//获取作者
out.println("</font>");
out.println("</td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>sqlBoard中showPosts方法:
public ArrayList<Posts> showPosts() throws SQLException, UnsupportedEncodingException{//显示所有会员名称
ArrayList<Posts> alist = new ArrayList<Posts>();
Connection conn = null; //数据连接
PreparedStatement pstmt = null;//数据库操作
ResultSet rs = null;
String sql = "select * from posts";
conn = sqlConnection();// 连接数据库
pstmt = conn.prepareStatement(sql);//实例化
rs = pstmt.executeQuery();
while(rs.next()){
Posts p = new Posts();
p.setId(rs.getInt("id"));//将帖子id添加
p.setTitle(rs.getString("title"));//将帖子标题添加
System.out.println(p.getTitle());
p.setUserName(rs.getString("userName"));//将帖子作者添加
p.setDate(rs.getDate("date").toString());//添加时间
p.setDetails(rs.getString("details"));//添加内容
alist.add(p);
}
rs.close();
pstmt.close();
conn.close();
return alist;
} javabean:
package bbs.com;import java.io.UnsupportedEncodingException;public class Posts {
private int id;
private String title;
private String userName;
private String details;
private String date;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getDetails() throws UnsupportedEncodingException {
return this.details = new String(details.getBytes("ISO8859-1"),"GBK");
}
public void setDetails(String details) throws UnsupportedEncodingException {
this.details = new String(details.getBytes("ISO8859-1"),"GBK");
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() throws UnsupportedEncodingException {
return this.title = new String(title.getBytes("ISO8859-1"),"GBK");
}
public void setTitle(String title) throws UnsupportedEncodingException {
this.title = new String(title.getBytes("ISO8859-1"),"GBK");
}

public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}

}数据库javabeanString

解决方案 »

  1.   

    看你用的是哪个数据库,mysql的话,我之前碰到过,是设置连接时的编码格式uft8,也有可能是页面的编码方式不太对,或者服务器的编码格式不对
      

  2.   

    连接时的格式也设置成GBK了 还是不行啊! 
      

  3.   

    调试一下看看是javabean里面是乱码,还是前台的乱码,我觉得是前台没处理好的缘故,八成JSP里面写ios-8809-1了
      

  4.   

    为什么不设置为utf8呢
    将项目和数据库默认设为utf8乱码问题解决了
    数据库转换utf8
      

  5.   

    先测试下哪里乱码,统一把数据库和jsp页面都转换utf8
      

  6.   

    out.println(alist.get(i).getUserName().getBytes("gbk"));//获取作者
      

  7.   

    设置一个utf-8的拦截器啊  
      

  8.   

    把默认编码格式改为UTF-8,保证以后就不会报乱吗了
      

  9.   

    你数据库创建的时候用的是不是GBK编码?