jsp+SQL server 7.0中奇怪的中文显示!

rox 2001-04-14 02:07:00
各位大虾,小弟初学jsp,最近正在按照书上使用jdbc+sql server 7.0连接来实现数据库的访问,但是在resin 1.1.3/1.2.0/1.3.b1版下,数据库中的名字(汉字)时乱码,而其他不是通过数据库的汉字显示又很正常。若使用jswdk的话就一点问题都没有,请问这事怎么回事,有没有解决办法,因为小弟已经习惯了使用resin了。谢谢!
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rox 2001-04-20
  • 打赏
  • 举报
回复
非常感谢gavinhe和zyandzl(超越)的帮助,我已经可以成功的从数据库中读取中文了,但是还有一件事情要麻烦两位一下,就是我在前面提过的不通过数据库存储信息的即时聊天室程序中,仍然对于汉字的用户名和汉字的聊天内容显示为乱码。我并不想再多麻烦两位,只是想问一问是不是通过jsp页面进行汉字的输入时,需要特殊的函数将其转换为GB码输入到数据库或其他的地方。谢谢!
zyandzl 2001-04-19
  • 打赏
  • 举报
回复
我也发现resin是对中文支持最好的JSP服务器,一般只要在页首加入<%@ page language="java" contentType="text/html;charset=gb2312" %>就可以搞定所有的中文显示和输入问题。

gavinhe 2001-04-19
  • 打赏
  • 举报
回复
我用的也是resin-1.3.b1

但我在我的每一个jsp文件开始位置添加了代码
<%@ page language="java" contentType="text/html;charset=gb2312" %>
所以从数据库的中文可以正常显示。
rox 2001-04-18
  • 打赏
  • 举报
回复
我试过了上面的方法还是不行,关键的原因好像并不是在这里,就连库连接出错的提示里面,只要有中文的resin就会出现乱码,而jswdk却不是这样。不过还是谢谢你!你已经告诉我了以后我该注意的地方。
sexpunk 2001-04-16
  • 打赏
  • 举报
回复
jsp中用sql时,如果不指定查询的项目,而又用rs.getString("studentNo")的话( 不用getString(0) )查出来的汉字有些就会出错,而如果把数据访问的语句放入bean,则必须要指出查询的项目,否则rs.getString("studentNo")连E文都查不出来。
上面的程序改成select studentNo,studentAge... from student就行,
或者读的时候用getString(0),getString(1)....也行。
jsp的各个server的解释规范有很多地方不一样。个人认为resin和jrun是兼容性最好的。websphere最衰,weblogic稍好。
这就是sun的烂东西,这里还有很多人说比asp好,我靠!!
rox 2001-04-16
  • 打赏
  • 举报
回复
等了几天,总算有位好心人肯回答我了,谢谢先!
全部的代码如下,需要用SQL Server 7.0建一个数据库user_db,其中建一个新表为student,并包含五个属性:studentNo(char,6),studentName (varchar,20), studentSex(bit,1), studentAge(int,4,null),studentDept(varchar,20,null)。
<HTML>
<HEAD>
<meta content="charset=gb2312">
<TITLE> database </TITLE>
</HEAD>

<BODY>
<%@ page import="java.sql.*" %>
<%
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:user_db";
Connection con=DriverManager.getConnection(url,"bill","bill");
Statement statement=con.createStatement();
String query="select * from student";
ResultSet result=statement.executeQuery(query);
%>
<table border=1 cellspacing="0" cellpadding="0" bordercolordark="#ffffff" bordercolorlight="#88a6dd" width="70%" align=center>
<tr bgcolor="#88a6dd">
<td align=center> 学号 </td>
<td align=center> 姓名 </td>
<td align=center> 性别 </td>
<td align=center> 年龄 </td>
<td align=center> 系名 </td>
</tr>
<%
while(result.next())
{
out.println("</tr>");
out.println("<td align=center>"+result.getString("studentNo")+"</td>");
out.println("<td align=center>"+result.getString("studentName")+"</td>");
if (result.getBoolean("StudentSex")==true)
%>
<td align=center>男</td>
<% else %>
<td align=center>女</td>
<% %>
<%
out.println("<td align=center>"+result.getString("studentAge")+"</td>");
out.println("<td align=center>"+result.getString("studentDept")+"</td>");
out.println("</td>");
}
con.close();
}catch(Exception e)
{out.println(e);}
%>
</table>
</BODY>
</HTML>
另外还有一个奇怪的问题,我现在使用希望出的《用JSP轻松开发Web网站》中聊天室(不访问数据库的,即时的)源代码居然只能在resin下使用,jswdk总是说内部服务器出错,错误为500,书上说这是类不能解释,可是为什么又能够在resin下使用?另外,resin中也只能使用英文的用户名和使用英文聊天,其他的源程序中的中文就可以正常显示,似乎只要通过了resin服务通道了以后的中文全都是乱码了。
zlandzy 2001-04-15
  • 打赏
  • 举报
回复
我的机器上不存在此问题,请给一点代码,或说明程序流程

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧