提问: 我通过JSP页的SQL语句写到数据表char类型字段中的汉字都是乱的。。。(20分)

  • 主题发起人 主题发起人 Rick.Qin
  • 开始时间 开始时间
R

Rick.Qin

Unregistered / Unconfirmed
GUEST, unregistred user!
提问: 我通过JSP页的SQL语句写到数据表char类型字段中的汉字都是乱的。。。
数据库是DB2 7.2
<jsp:useBean id="dbc" scope="page" class="pub.AccessDB">
</jsp:useBean>
<%
String sql = "INSERT INTO sc_jxjh_sq (dwmc) VALUES ('单位1')";
dbc.executeUpdate(sql);
%>
dwmc字段的类型是char(10),通过jbx自带的database pilot工具查看该字段值,看不懂,乱码。
求解决办法。
 
在你的JSP页面里增加
<%@page contentType="text/html;charset=GBK"%>
或是
<%@page contentType="text/html;charset=GB2312"%>

<jsp:useBean id="dbc" scope="page" class="pub.AccessDB">
</jsp:useBean>
<%
String sql = "INSERT INTO sc_jxjh_sq (dwmc) VALUES ('单位1')";
dbc.executeUpdate(sql);
%>
或者将汉字转码后再保存!
 
就没有更好的方法了吗?
我找到了解决办法,但是,不好。
如下:
String sql = "INSERT INTO sc (dwmc) VALUES ('单位1')";
byte[] temp = sql.getBytes("iso-8859-1");
sql = new String(temp);
dbc.executeUpdate(sql);
/*
这是按照iso-8859-1 CharsetEncode来对sql重新构建,然后再通过dbc.executeUpdate来执行。
有没有什么更好的方法?这样写不是太麻烦了嘛,每做一次sql都要转一次,唉。专家都跑哪儿去了?帮帮忙啊。。。。。
*/
 
兄弟,满足吧,我知道的就这两种方法了
 
但是第一种方法根本不起作用啊。。。。所以,难道只有这么一种方法了?
是不是在数据库字段类型那儿也可以变一变啊,让它可以接收16bit的数据??
我试过,把dwmc类型设置成graphic,可是,汉字是能存取了,但你要是写一个英文字符夹在汉字字串中,运行JSP时报错,说指定字段无法接收数据,类型不匹配。。。。。。。
唉,不会只有这一种方法吧。》》》》》?????
 
好吧,介绍一个好网站给你吧
参考
http://www.java-cn.com/
最好的JAVA学习站点
N多的学习资料,N多的工具,N多的源代码,N多的……
http://www.51jsp.net/InfoView/Infomore.asp?kind=数据库&amp;Page=2
来者无悔
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2482736
DELPHI程序员必备手册2部(CHM格式),N部其他格式的delphi书籍,外加100部经典书籍下载(转载)
已下载的别来了
 
tomcat的话
<%response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
%>
就可以了
weblogic的话,在bbs里有,授一下就可以了。
 
非常有用。呵呵。谢谢大家。最后的方法最好。
 
注意一下,有机会的话在其他的服务器下试试,以免服务器不同而有所不同了
 
嗯,我已经试过了,在weblogic和tomcat下都试过了。是不一样。但是,无大碍。我也用websphere和jbx中自带的服务调试过,可行。
 
多人接受答案了。
 
后退
顶部