CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

eclipse里jsp页面编译为Servlet中文变为乱码的问题

楼主supperman_009(天堂草)2005-03-28 12:28:31 在 Java / Web 开发 提问

乱码问题,eclipse里jsp页面上的中文,在编译过后的相应java文件里全变成了乱码,就是页面上的中文,要怎么设置才能在编译成Servlet时不产生乱码啊!多谢各位,麻烦再讲一下。  
  虽然在page中指定了是   gb2312   可是只是偶尔能正常显示中文,大多时候都是乱码啊!!!  
   
  就是加上<%@   page   contentType="text/html;   charset=GB2312"   %>也不行,为什么啊,现在页面上从数据库读出来的数据可以正常显示中文(中文插入数据库时,进行了转换),但页面总是不正常,有时第一次显示正常,可刷新一下就变成乱码了,我的平台是tomcat5.0+JDK1.4.05+Eclipse3.0.1(emf2.0.1+lomboz.301+tomcatPluginV3)环境下,什么问题造成这种现象啊!怎么解决?  
  问题点数:20、回复次数:23Top

1 楼supperman_009(天堂草)回复于 2005-03-28 12:31:03 得分 0

<tr>  
              <td   width="50%">人员学历:</td>  
              <td   width="50%"><select   size="1"   name="xl">  
                      <option   value="大专">大专</option>  
                      <option   value="本科">本科</option>  
                  </select></td>  
          </tr>  
          <tr>  
              <td   width="50%">人员性别:</td>  
              <td   width="50%"><select   size="1"   name="xb">  
                      <option   value="男">男</option>  
                      <option   value="女">女</option>  
                  </select></td>  
          </tr>  
          <tr>  
   
  很严重的是,这部分被编译成了下面这样,老是说有非法字符啊!!!  
   
              out.write("         <tr>\r\n");  
              out.write("             <td   width=\"50%\">浜哄憳瀛﹀巻锛&#65533;</td>\r\n");  
              out.write("             <td   width=\"50%\"><select   size=\"1\"   name=\"xl\">\r\n");  
              out.write("                     <option   value=\"澶т笓\">澶т笓</option>\r\n");  
              out.write("                     <option   value=\"鏈\">鏈</option>\r\n");  
              out.write("                 </select></td>\r\n");  
              out.write("         </tr>\r\n");  
              out.write("         <tr>\r\n");  
              out.write("             <td   width=\"50%\">浜哄憳鎬у埆锛&#65533;</td>\r\n");  
              out.write("             <td   width=\"50%\"><select   size=\"1\"   name=\"xb\">\r\n");  
              out.write("                     <option   value=\"鐢穃">鐢&#65533;</option>\r\n");  
              out.write("                     <option   value=\"濂砛">濂&#65533;</option>\r\n");  
              out.write("                 </select></td>\r\n");  
              out.write("         </tr>\r\n");Top

2 楼supperman_009(天堂草)回复于 2005-03-28 12:44:37 得分 0

语法检查直接报错,IE也报错说是倒数第4、5、6行引入非法字符‘)’。应该是中文乱码造成的,怎么解决啊!!eclipse的编辑字符集是GBK,JSP页面里也加了<%@   page   contentType="text/html;   charset=GB2312"   %>,可就是不正常啊。  
  编译后生成的Servlet的java文件里可以看到:  
              response.setContentType("text/html;   charset=GB2312");  
              pageContext   =   _jspxFactory.getPageContext(this,   request,   response,  
              null,   true,   8192,   true);  
  到底是什么问题啊!高手请指教。我把eclipse的编辑字符集换成gb2312也不行,快崩溃了。Top

3 楼supperman_009(天堂草)回复于 2005-03-29 11:31:36 得分 0

没人理我?Top

4 楼anson2003(老蒋)回复于 2005-03-29 13:23:00 得分 5

你是页面里有中文后,再加上page属性得吧?我建议先加page属性再在页面里输入中文,肯定不会是乱码!Top

5 楼supperman_009(天堂草)回复于 2005-03-29 17:25:49 得分 0

不是啊,我是在每页的一开始加的page属性啊!  
  浏览器浏览没有问题,这个问体出在Eclipse里,由.jsp运行转换成.java的severlet时,sevrlet里出现乱码,有时会影响运行,有时不会,上面就是现象,很郁闷,用了很多方法,.java里还是乱麻。有办法解决马?Top

6 楼foxty(狐狸糊涂)回复于 2005-03-29 18:15:27 得分 0

request.setCharacterEncoding("GB2312");Top

7 楼jdk150(砸破玻璃上火车&举块砖头闹革命)回复于 2005-03-29 19:47:17 得分 0

可能是jsp文件本身的编码问题,你把jsp文件用其他文本编辑器(带有可以选择编码类型的那种)打开,再保存的时候选择默认的编码类型(或者bg2312,不记得了,可以都试试看)Top

8 楼shaoyadong(呼呼)回复于 2005-03-29 21:58:38 得分 0

我觉得你应该把你的JSP里面的中文都要改成ASCII码,试试!!不一定对哦..Top

9 楼anson2003(老蒋)回复于 2005-03-31 12:10:27 得分 10

你把那个JSP删调!重新用eclipse建一个测试的jsp,先不要在JSP中输中文,你先把头部的page加好,我记得eclipse会空出一行专门让你写头部字符编码的,等你写好了之后,然后加上<%out.print("测试");%>看输出的是不是中文!Top

10 楼shadow7788(小小)回复于 2005-03-31 12:22:46 得分 0

你的IE是几点几啊???是不是IE6。0啊???  
  你用System.out.println();  
  打印看一下  
  还有你JSP是用的gb2312吗?Top

11 楼supperman_009(天堂草)回复于 2005-04-05 22:22:46 得分 0

我的IE是6.0的,可以确定  
   
  我用另一种方法解决了,编译好的文件的“#65533”这样的东西,可以在*.jsp运行之前,在汉字的前后加些空格,或者把双引号改成单引号就好了,关键是能消除其出现转义字符型乱码,或者控制字符型乱码,编译之后生成的中间文件*.java里面虽然是乱码,但是不影响IE的正常浏览,可以正常输出中文了,但是仅仅是可以,还是不很正常。Top

12 楼supperman_009(天堂草)回复于 2005-04-05 22:23:53 得分 0

现在的问题是,在tomcat5.0+JDK1.4.05+Eclipse3.0.1(emf2.0.1+lomboz.301+tomcatPluginV3)+WINXP(SP2)+IE6.0   环境下,每次第一次启动Eclipse,直到更改*.jsp并保存,不论怎么重启服务或IE,浏览的都是乱码,要到更改某一页jsp的源码后,或者删除work目录下生成的*.java中间文件为止,才会使某一页,或者全部的页的中文正常显示。运行中也发现这个问题,第一次编译生成*.java时,肯定是正常的,但是有时刷新几下,也就是开始直接读取编译好的文件吧,就会出现乱码的情况。  
  哪位高手能指点一下,本人也在努力找到根源,现正在win2000sever和redhat   linunx   9.0下建立相同平台进行问题追查。大家一起摆平它啊!乱码问题  
  哦,有一点,Eclipse下,work目录下的severlet文件中中文是乱码,但是为什么编辑器的页签中也有一个severlet相应的版本却是正常中文的?就是编辑jsp页面时,编辑窗口下方可以看见的那个severlet的页筐里。  
  看看这里,有详细的  
  http://community.csdn.net/Expert/topic/3887/3887387.xmlTop

13 楼anson2003(老蒋)回复于 2005-04-06 12:19:49 得分 5

请不要用Eclipse先,用记事本,请你在${CATALINA_HOME}/webapp/ROOT下加入下面文件(a.jsp):  
   
  <%@   page   contentType="text/html;   charset=GBK"   %>  
  <html>  
  <head>  
  <title>  
  测试  
  </title>  
  </head>  
  <body>  
  <table   border="1">  
  <tr>  
              <td   width="50%">人员学历:</td>  
              <td   width="50%"><select   size="1"   name="xl">  
                      <option   value="大专">大专</option>  
                      <option   value="本科">本科</option>  
                  </select></td>  
          </tr>  
          <tr>  
              <td   width="50%">人员性别:</td>  
              <td   width="50%"><select   size="1"   name="xb">  
                      <option   value="男">男</option>  
                      <option   value="女">女</option>  
                  </select></td>  
          </tr>  
  </table>  
  </body>  
   
  </html>  
  上面的代码直接拷到记事本上然后保存到${CATALINA_HOME}/webapp/ROOT下,  
  然后访问http://localhost:8080/a.jsp,看是不是显示乱码!!!!  
  如果是乱码,请换TOMCAT的版本!!!Top

14 楼anson2003(老蒋)回复于 2005-04-06 12:21:29 得分 0

还有!你所谓的有时候不正常显示是什么时候?这些中文是从数据库取出来   的那些有时不正常?  
  还是本来静态的中文也有时不正常?Top

15 楼chenliang2m(风)回复于 2005-04-06 12:44:47 得分 0

<%request.setCharacterEncoding("GBK");%>  
   
  这句应该好使的  
  是servlet的功能的呢!  
  加在页首第一行  
   
  可能要配一下   tomcat的servlet.jar的路径到classpath   里  
  Top

16 楼supperman_009(天堂草)回复于 2005-04-06 22:48:19 得分 0

回复人:   anson2003(老蒋)   (   )   信誉:100     2005-04-06   12:21:00     得分:   0      
  还有!你所谓的有时候不正常显示是什么时候?这些中文是从数据库取出来   的那些有时不正常?  
  还是本来静态的中文也有时不正常?  
  -------------------------------------------  
   
  谢谢大侠,我指的不正常是静态文本的,从数据库读出的数据一直是正常的,显示没有问题,就是静态页乱码时,都是正常的。数据库中的中文存入之前我按照网上的高手做法,用字符码转换函数转换成ISO8891那个码了,读出时始终是正常的。  
   
  向上第三层的方法我这就去试试  
  Top

17 楼supperman_009(天堂草)回复于 2005-04-06 22:53:21 得分 0

哦,补充一下,我说的有时不正常通常是在,(未对JSP页面进行任何更改,每次重新准备做工程的时候)第一次启动编译器,直接运行服务,用IE看,绝对是乱码,但是如果对每一页都进行一下修改,就是激活一下保存选项,即使什么都没有改动,页面都会正常一次Top

18 楼minisun2000(红色枫叶)回复于 2005-04-07 08:49:26 得分 0

开头加个<%@   page   pageEncoding="GBK"   %>试试  
  Top

19 楼llp1217(风少)回复于 2005-04-07 09:07:41 得分 0

eclipse里面有个编码设置选项,试试看Top

20 楼yuxuefenfei(蓝色)回复于 2005-04-07 09:25:06 得分 0

http://blog.csdn.net/lvyuanfang/archive/2005/02/03/279498.aspxTop

21 楼supperman_009(天堂草)回复于 2005-04-08 10:42:54 得分 0

回复人:   anson2003(老蒋)   (   )   信誉:100      
  ..............  
  上面的代码直接拷到记事本上然后保存到${CATALINA_HOME}/webapp/ROOT下,  
  然后访问http://localhost:8080/a.jsp,看是不是显示乱码!!!!  
  如果是乱码,请换TOMCAT的版本!!!  
  --------------------------------------------------------------------------------------  
  我按照你说的做了,一切正常,一个乱码都没有,看来不是TOMCAT的问题,我的版本是5.0.28和5.0.30都试了,都正常。就是一放到Eclipse里就出问题,乱码不断,而且5.0.28和ECLIPSE结合的不好,ECLIPSE的控制台都得不到任何信息,也无法启动tomcat在Eclipse下。  
  Top

22 楼supperman_009(天堂草)回复于 2005-04-09 19:56:32 得分 0

重装了两个系统终于知道是怎么回事了,LINUX下一切正常,只要加了那两句话。windows下是不能让系统太烦忙,原来是在自己的笔记本上同时启动TOMCATE和SQL   SEVER,所以有时就是乱码。  
  如果使用外部SQL   SEVER,一切就正常了Top

23 楼supperman_009(天堂草)回复于 2005-04-11 10:33:41 得分 0

不是不能同时用服务,可以用,但是不能同时在一台机器上即跑SQL   SEVER   又跑TOMCATE.我的笔记本就是这样,我把SQL   SEVER服务器,移到别的机器上,就在也没有出现过乱码.想可能是机器性能不足造成的.  
  由于乱码产生的条件不确定,所以乱码问题很难搞定,昨天只出现了两次乱码,像是随机的,很奇怪,时而正常,时而不正常的,最麻犯了.无从下手,还请高手执教.  
   
  本人怀疑浏览器问题,也使用了FireFox   1.0中文增强版,结果有喜有忧:IE是第一次正常,以后错误.它是第一次乱码就次次乱码,第一次正常,就次次正常,而且其中有一页显示数据库查询结果的(数据以表格显示出来),不论怎么弄,静态文本都是乱码,动态文本一切正常.实在奇怪.Top

相关问题

  • eclipse 如何编译 servlet
  • Eclipse无法编译JSP文件
  • 在eclipse中编译servlet程序
  • eclipse编译jsp中文乱码问题
  • eclipse 如何编译servlet文件?
  • eclipse里jsp页面编译为Servlet中文变为乱码的问题 在线急等
  • servlet的编译?
  • jsp编译器
  • 在WebLogic中如何将些JSP与Servlet预编译?
  • 在eclipse中 jsp页面不能被编译

关键词

  • .net
  • 人员

得分解答快速导航

  • 帖主:supperman_009
  • anson2003
  • anson2003
  • anson2003

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo