用JSP写的web网页在从数据库中读出数据时只能显示英文不能读出中文或插入中文到数据库。
我是新手,差了好多的资料还是没有解决,各位高手指点一下啊,小弟在这先谢谢啦
代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
 
<jsp:include flush="true" page="index.jsp"/><br />
<p align="center"><strong><font size="4" color="#FF0000"">学生资料列表</font></strong></p>
<table width="768" border="0" align="center" cellpadding="3" cellspacing="1">
  <tr><td><a href="StudAdd.jsp">新增</a></td></tr>
</tr>
</table>
<table width="768" border="1" align="center" cellpadding="3" cellspacing="1">
  <tr>
    <td><div align="center">所属学院</div></td>
    <td><div align="center">专业名称</div></td>
    <td><div align="center">学生编号</div></td>
    <td><div align="center">学生姓名 </div></td>
    <td><div align="center">所在班级</div></td>
    <td><div align="center">性   别</div></td>
    <td><div align="center">年   龄</div></td>
    <td><div align="center">删除资料</div></td>
  </tr>
<%
     String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login"; 
 String user="sa"; 
     String password=""; 
try{
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
     Connection conn= DriverManager.getConnection(url,user,password);
 String sql = "select s.*,c.classID,m.majorname,d.depname from studinfo s left outer join class c on s.classID=c.classID left outer join major m on m.majorid=c.majorid left outer join department d on d.depid=m.depid";     Statement stmt = conn.createStatement();
     ResultSet rs  = stmt.executeQuery(sql); 
     String depName="",majorName="",studID="",studName="",classID="",sex="",age="";
     while(rs.next()){
 depName=rs.getString("depName");
 majorName=rs.getString("majorName");
     studID=rs.getString("studID");
     studName=rs.getString("studName");
     sex=rs.getString("sex");
     age=rs.getString("age");
     classID=rs.getString("classID");
     
 
 
 
     
  %>
  <tr>
    <td><div align="center"><%=depName%></div></td>
    <td><div align="center"><%=majorName%></div></td>
    <td><div align="center"><%=studID%></div></td>
    <td><div align="center"><%=studName%></div></td>
    <td><div align="center"><%=classID%></div></td>
    <td><div align="center"><%=sex%></div></td>
    <td><div align="center"><%=age%></div></td>
    <td><div align="center"><a href="StudDel.jsp?studId=<%=studID%>" onclick="return check();">删除资料</a></div></td>
  </tr>
  <%}
  }catch(Exception e){
    System.out.println(e.getMessage());  }
   %>
</table>
</body>
</html>
<script language="javascript">
function check()
{
if(confirm("删除确认"))
{
return true;
}
return false;
}
</script>

解决方案 »

  1.   

    页面中文乱码处理的方式是:在page指令中加入:pageEncoding="gbk"
    提交的乱码问题一般用过滤器处理!或者最笨的办法:在每个jsp页面加入request.setCharacterEncoding="gbk";response.setCharacterEncoding="gbk"
      

  2.   

    向数据库中插入汉字是先要将其转换:
    String content=new String(request.getParameter("content").getBytes("iso-8859-1"));
    你说从数据库中读取不了,那我就没遇到过,我也是用:rs.getString("content");但是能行。
      

  3.   

    设置
    request.setCharacterEncoding("gbk");
    或者
    response.setCharacterEncoding("gbk");
      

  4.   

    加上<%@ page language="java"  import="java.util.*" pageEncoding="gb2312"%>试试
      

  5.   

    在接收的页面加句request.setCharacterEncoding="gbk2312";
      

  6.   

    要想插入中文道数据库,需要在此String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login"; 
    String user="sa"; 语句中加上资费编码utf-8或GBK
      

  7.   

    页面中文乱码处理可以把<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 里面的gb2312改为GBK
    提交的乱码问题可以用过滤器处理!或者在接收的页面加上
    request.setCharacterEncoding="gbk";response.setCharacterEncoding="gbk"