数据库连接池连接成功后面,SQL语句输出的是????

JIEK_ONE 2004-09-20 12:58:04
数据库连接池程序没有没有问题的
问题出在这个Test.java文件上,代码如下:
import db.DBConnectionManager;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.util.Date;

//对TestServlet进行出始化//
public class TestServlet extends HttpServlet {

private DBConnectionManager connMgr;

public void init(ServletConfig config)throws ServletException {

super.init(config);

connMgr = DBConnectionManager.getInstance();

}

//对数据库进行操作//
public void service(HttpServletRequest req,HttpServletResponse res)
throws IOException {

res.setContentType("text/html");
PrintWriter out = res.getWriter();
Connection con = connMgr.getConnection("idb");

if(con == null) {

out.println("不能获取数据库连接");
return;

}

ResultSet rs = null;
ResultSetMetaData md = null;
Statement stmt = null;

try {

stmt = con.createStatement();
rs = stmt.executeQuery("select * from EMPLOYEE");
md = rs.getMetaData();
out.println("<h1>职工数据</h1>");

while (rs.next()){

out.println("<br>");
for(int i = 1; i < md.getColumnCount(); i++) {

String data = new String(rs.getString(i).getBytes("8859_1"),"GB2312");
out.print(data + " ");

}

}

stmt.close();
rs.close();

} catch(SQLException e) {

e.printStackTrace(out);

}

//将这个连接加入到数据库连接池//
connMgr.freeConnection("idb",con);

}

public void destroy() {

connMgr.release();
super.destroy();

}

}
如果表EMPLOYEE里面的数值是中文就是这样的结果:
职工数据

??? ?
?? ?
?? ?
?? ?
?? ?
数据如果是英文就没有问题,不知道数据库的默认字符编码是什么?
有什么方法可以改变没有啊?
大家帮帮我啊:)
...全文
180 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
JIEK_ONE 2004-09-20
恩 好的 我在试试
用了
在res.setContentType("text/html");
改成res.setContentType("text/html;charset=gb2312");
就可以了
我在试试TechnoFantasy的方法看看。:)
回复
yaohao803 2004-09-20
在res.setContentType("text/html");
改成res.setContentType("text/html;charset=gb2312");
回复
airskys 2004-09-20
得到数据后进行字符转码
TechnoFantasy的方法是可以用的
你在对照一下
回复
JIEK_ONE 2004-09-20
大家说的方法我都试过了 不行啊。
晕。
回复
liujs1026 2004-09-20
public static String gbToAscii(String s)
throws Exception
{
if(s == null)
return "";
byte[] b = s.getBytes("gb2312");
s = new String(b, "ISO8859_1");
return s;
}
回复
learnner 2004-09-20
.jsp首行加入
<%@page language="java" contentType="text/html; charset=GB2312"%>
回复
TechnoFantasy 2004-09-20
字符转码一下:

public static String getReadStr(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859-1");
String unicode = new String(temp_t,"GBK");
return unicode;
}
catch(Exception e) {
return "null";
}
}
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-20 12:58
社区公告
暂无公告