1.客户端jsp文件的一部分><%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
  <%
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
  href="servlet/StudentRedirect?menu=addScore.jsp" target="_parent">成绩管理</a>2.
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>  <%! String trans(String chi){ 
String result = null; 
byte[] temp; 
try{ 
temp = chi.getBytes("iso-8859-1"); 
result = new String(temp); 
}catch(Exception e){} 
return result; 

 %>
  <h4>学生成绩管理</h4>
 <form action="" name="adds" method="post">
   <font>教师编号:</font><font style="color: red"><%=name %></font>
      <%
      try{
       Teacher teacher = null;
       teacher = te.selectByTID(name);
       int tid = 0 ;
       if(teacher != null){
       tid = teacher.getTID();
       }
       TeaCourse tc = null;
       tc = dtc.selectCourseBytID(tid);
       int cid = 0;
       if(tc != null){
       cid = tc.getCourseID();
       }
       String cname = "";
       Course course = null;
       course = co.selectCourseByCID(cid);
       if(course != null){
           cname = course.getCourseName();
       }
      
     %>
     &nbsp;<font>课程名称:</font><font style="color: red"><%=trans(cname) %></font>
    
      
      <ul class="addScore">
     <li class="adds"><font>学生学号</font></li>
     <li class="adds"><font>学生姓名</font></li>
     <li class="adds"><font>成绩</font></li>
     <li class="adds"><font>&nbsp;</font></li>     </ul> 
   如学生姓名就是显示?????

解决方案 »

  1.   

    对了 我用的是mysql数据库不知应设什么字符编码?
    文件内容为:
    - MySQL dump 10.11
    --
    -- Host: localhost    Database: student
    -- ------------------------------------------------------
    -- Server version 5.0.67-community-nt/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
    -- Table structure for table `stu_course`
    DROP TABLE IF EXISTS `stu_course`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `stu_course` (
      `courseID` int(11) NOT NULL auto_increment,
      `courseName` varchar(50) NOT NULL,
      `courseCredit` int(11) default NULL,
      `totalScore` int(11) default NULL,
      `re` varchar(50) default NULL,
      PRIMARY KEY  (`courseID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312;
    SET character_set_client = @saved_cs_client;--
    -- Dumping data for table `stu_course`
    --LOCK TABLES `stu_course` WRITE;
    /*!40000 ALTER TABLE `stu_course` DISABLE KEYS */;
    INSERT INTO `stu_course` VALUES (1,'Java',4,100,'课程介绍'),(2,'JSP',4,100,'课程介绍'),(3,'JSF',2,100,'课程介绍'),(4,'Ajax',4,100,'课程介绍'),(5,'Struts',2,100,'课程介绍');
    /*!40000 ALTER TABLE `stu_course` ENABLE KEYS */;
    UNLOCK TABLES;--
    -- Table structure for table `stu_login`
    --DROP TABLE IF EXISTS `stu_login`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `stu_login` (
      `loginID` int(11) NOT NULL auto_increment,
      `roleID` int(11) NOT NULL,
      `loginName` varchar(50) NOT NULL,
      `loginPWD` varchar(50) NOT NULL,
      PRIMARY KEY  (`loginID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gb2312;
    SET character_set_client = @saved_cs_client;--
    -- Dumping data for table `stu_login`
    --LOCK TABLES `stu_login` WRITE;
    /*!40000 ALTER TABLE `stu_login` DISABLE KEYS */;
    INSERT INTO `stu_login` VALUES (1,1,'admin','admin'),(2,2,'t001','t001'),(3,3,'s001','s001');
    /*!40000 ALTER TABLE `stu_login` ENABLE KEYS */;
    UNLOCK TABLES;--
    -- Table structure for table `stu_news`
    --DROP TABLE IF EXISTS `stu_news`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `stu_news` (
      `newsID` int(11) NOT NULL auto_increment,
      `newsTitle` varchar(50) NOT NULL,
      `newsContent` varchar(50) NOT NULL,
      `newsTime` datetime NOT NULL,
      `re` varchar(50) default NULL,
      PRIMARY KEY  (`newsID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=gb2312;
    SET character_set_client = @saved_cs_client;--
    -- Dumping data for table `stu_news`
    --LOCK TABLES `stu_news` WRITE;
    /*!40000 ALTER TABLE `stu_news` DISABLE KEYS */;
    INSERT INTO `stu_news` VALUES (1,'news1','newsnewsnews1','2009-02-01 00:00:00',''),(2,'news2','newsnewsnews2','2009-02-01 00:00:00',''),(3,'news3','newsnewsnews4','2009-02-01 00:00:00',''),(4,'news4','newsnewsnews3','2009-02-02 00:00:00',''),(5,'news5','newsnewsnews5','2009-02-02 00:00:00',''),(6,'news6','newsnewsnews6','2009-02-02 00:00:00','');
    /*!40000 ALTER TABLE `stu_news` ENABLE KEYS */;
    UNLOCK TABLES;--
    -- Table structure for table `stu_stucourse`
    --DROP TABLE IF EXISTS `stu_stucourse`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `stu_stucourse` (
      `scid` int(11) NOT NULL auto_increment,
      `ID` int(11) default NULL,
      `courseID` int(11) default NULL,
      `score` int(11) default NULL,
      PRIMARY KEY  (`scid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312;
    SET character_set_client = @saved_cs_client;--
    -- Dumping data for table `stu_stucourse`
    --LOCK TABLES `stu_stucourse` WRITE;
    /*!40000 ALTER TABLE `stu_stucourse` DISABLE KEYS */;
    INSERT INTO `stu_stucourse` VALUES (1,1,1,90),(2,1,2,90),(3,1,3,90),(4,2,1,90),(5,2,2,90);
    /*!40000 ALTER TABLE `stu_stucourse` ENABLE KEYS */;
    UNLOCK TABLES;--
    -- Table structure for table `stu_student`
    --DROP TABLE IF EXISTS `stu_student`;
    SET @saved_cs_client     = @@character_set_client;
    SET character_set_client = utf8;
    CREATE TABLE `stu_student` (
      `ID` int(11) NOT NULL auto_increment,
      `stuID` varchar(50) NOT NULL,
      `stuName` varchar(50) NOT NULL,
      `enterTime` datetime default NULL,
      `stuYear` varchar(50) default NULL,
      `address` varchar(50) default NULL,
      `tellphone` varchar(50) default NULL,
      `stuclass` varchar(50) default NULL,
      `re` varchar(50) default NULL,
      PRIMARY KEY  (`ID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312;
    SET character_set_client = @saved_cs_client;
      

  2.   

    是mysql数据库都设为gbk吗?我试一下先.我试过都设为utf8或gb2312或latin1,然后建数据库,导入上面的文件不行.
    /*!40101 SET NAMES utf8 */;
    SET @saved_cs_client = @@character_set_client;
    SET character_set_client = utf8
     ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312;
    这些为什么不设为同一个编码???
    这些会说明mysql各个层次设为不同的编码吗?
      

  3.   

    temp = chi.getBytes("iso-8859-1");  
    你干嘛把内容转码成这个呢
    你的页面编码是gbk,但文章内容却是8859-1,当然会乱码了
      

  4.   

    上面中2.中的全部代码我贴出来看一下吧!
    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page import="bean.Course"%>
    <%@ page import="bean.StuCourse"  %>
    <%@ page import="bean.TeaCourse"  %>
    <%@ page import="bean.Teacher"  %>
    <jsp:useBean id="co" class="dao.DataCourse" scope="page"></jsp:useBean>
    <jsp:useBean id="dtc" class="dao.DataTeaCourse" scope="page"></jsp:useBean>
    <jsp:useBean id="dsc" class="dao.DataStuCourse" scope="page"></jsp:useBean>
    <jsp:useBean id="te" class="dao.DataTeacher" scope="page"></jsp:useBean>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <link rel="stylesheet" type="text/css" href="css/common.css">
    <link rel="stylesheet" type="text/css" href="css/home.css">  </head>
      <%
    String name =(String) session.getAttribute("loginname");
    if(name == null ){
    %>
      <script type="text/javascript">
    location.href="index.jsp";
      </script>
     <%
      }
    %>  <body>
      <div class="divbody">
      <%! String trans(String chi){ 
    String result = null; 
    byte[] temp; 
    try{ 
    temp = chi.getBytes("iso-8859-1"); 
    result = new String(temp); 
    }catch(Exception e){} 
    return result; 

     %>
      <h4>学生成绩管理</h4>
     <form action="" name="adds" method="post">
       <font>教师编号:</font><font style="color: red"><%=name %></font>
          <%
          try{
           Teacher teacher = null;
           teacher = te.selectByTID(name);
           int tid = 0 ;
           if(teacher != null){
           tid = teacher.getTID();
           }
           TeaCourse tc = null;
           tc = dtc.selectCourseBytID(tid);
           int cid = 0;
           if(tc != null){
           cid = tc.getCourseID();
           }
           String cname = "";
           Course course = null;
           course = co.selectCourseByCID(cid);
           if(course != null){
               cname = course.getCourseName();
           }
          
         %>
         &nbsp;<font>课程名称:</font><font style="color: red"><%=trans(cname) %></font>
        
          
          <ul class="addScore">
         <li class="adds"><font>学生学号</font></li>
         <li class="adds"><font>学生姓名</font></li>
         <li class="adds"><font>成绩</font></li>
         <li class="adds"><font>&nbsp;</font></li>
         </ul>
       
     <input type="hidden" name="cid" value=<%=cid %>/>
         <%
    List<StuCourse> allStuCourse = new ArrayList<StuCourse>();
    allStuCourse = dsc.selectCourseAndScore(cid);
    StuCourse scourse = new StuCourse();
    Iterator<StuCourse> iter = allStuCourse.iterator();
    while(iter.hasNext()){
    scourse = (StuCourse)iter.next();
    int scid = scourse.getScid();
    int score = scourse.getScore();
    String sid = scourse.getStuID(); 

    %>
         <ul class="addScore">
         <li class="adds"><font><%=trans(sid) %></font> </li>
         <li class="adds"><font><%=trans(scourse.getStuName()) %></font> </li>
         <li class="adds"><span id="<%=sid %>span"><%=score %></span>
          </li>
         <li class="adds"><font><input type="button"  onclick="changeScore('<%=sid%>','<%=scid %>')" value="修改"></font></li>
         </ul>
         <%
    }
    }catch(Exception e){}

     %>
        </form>
        <script type="text/javascript">
           var s ;
           var scid ;
           function changeScore(sid,v2){
             scid = v2;
             var dvalue = document.getElementById(sid+"span").innerText;
             var d  = document.getElementById(sid+"span");
             d.innerHTML = "<input type='text' id='"+sid+"inputid' value='"+dvalue+"' onblur='checkScore(\""+sid+"\")' style='width:50px;'/>";
           
           }
           function checkScore(sid){
            s = document.getElementById(sid+"inputid").value;
            var pattern = /^[1-9][0-9]{0,3}$/;
            if(!pattern.test(s) || s > 150){
            alert('输入的成绩不正确!请检查!');
            }else{
            var d  = document.getElementById(sid+"span");
            d.innerHTML = s;
            sendReq();
            }
           }
       var req=false;//异步请求提交对象
       //1、初始化异步请求提交对象
       function init(){
         if(window.ActiveXObject){
         //IE
         req=new ActiveXObject("Microsoft.XMLHTTP");
         }else{
           //firefox
           req=new XMLHttpRequest();
         }
         //alert(req);
       }
       //发送请求
       function sendReq(){
       
         init();
         //2、指定处理返回值的函数
       //  req.onreadystatechange=process;
         //3、打开到资源的连接
        req.open("get","servlet/AddScoreServlet?score="+s+"&scid="+scid,true);
         //4、发送请求
         req.send(null);
       }
       
      
         
         
    </script> </div>
      </body>
    </html>
      

  5.   

    在安装mysql的时候,就有关于语言的选项,是不是那里就没有选择gbk?
      

  6.   

    <li class="adds"><font><%=trans(scourse.getStuName()) %></font> </li>错啦、、%>  <body>
      <div class="divbody">
      <%! String trans(String chi){  
    String result = null;  
    byte[] temp;  
    try{  
    temp = chi.getBytes("iso-8859-1");  
    result = new String(temp,"gb2312");  
    }catch(Exception e){}  
    return result;  
    }  
     %>
      

  7.   

    <li class="adds"><font><%=scourse.getStuName() %></font> </li>这个地方不需要转码
      

  8.   

    所有编码都统一,从jsp页面的charset ,Encording,开发环境,数据库.都统一,绝对没问题.