此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【linxiangzheng】截止到2008-07-17 14:19:02的历史汇总数据(不包括此帖):
发帖的总数量:1                        发帖的总分数:120                      每贴平均分数:120                      
回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
结贴的总数量:1                        结贴的总分数:120                      
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
敬礼!

解决方案 »

  1.   

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="spring" uri="/WebRoot/WEB-INF/spring.tld" %>
    <%@ page language="java" contentType="text/html; charset=gb2312" %><html> 
    <head>
    <title>123123</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">页面上的中文应该是没有问题的。
    由于涉及机密,所以不能贴出来。这是从websphere移植到tomcat下的,
    怀疑是文件编码的问题。请大家帮忙分析下。
      

  2.   

    第一次不是将work下面的文件都清空了么,
    运行一次以后,刷新项目,work就出现了jsp
    编译之后的_jsp.java文件和class文件,
    这时候会报错
    标记上有语法错误,删除这些标记
    字符串文字未用双引号正确地引起来我查了一下,这些错误应该都是由于文件编码导致的,
    我怀疑是jsp文件存储编码有问题
      

  3.   


    我把eclipse-窗口-首选项-常规-内容类型-文本
                  将Java源文件的缺省编码改为UTF-8,
    这样就没有问题了,
    这可以证明jsp文件存储时按什么编码存储、
    以及jsp文件编译成java文件时按什么编码编译按什么编码存储,
    原来的错误跟这些有关系。还是请大家帮忙分析下,如果将Java源文件的缺省编码改回来,
    应该如何设置jsp编码或者将jsp转码呢???
      

  4.   

    tomcat5.5,默认编码GBK 
    你是怎么默认的,tomcat的默认编码是iso8859-1
      

  5.   

    在什么环境下??? windows 还是 linux?只是重新启动就乱码了吗?
      

  6.   

    用编辑工具转吧
    editplus,ultraedit!
    或者很笨的方法,新建个文件,然后把先前的文件拷贝过来!
      

  7.   

    恩,遇到过这个问题!
    确实是java源文件的缺省编码问题!
      

  8.   

    首先谢谢大家的热心帮忙!!!tomcat不是默认的gbk,是我在connector下面添加的gbk呵呵。每次重启都有乱码,也就是说,一旦运行过一次,jsp编译成.java、.class文件以后,
    tomcat一旦重启就会出现乱码。jsp页面上固定写死的中文会变成乱码,所以应该是jsp源文件字符集的问题,
    我用转码工具将jsp文件全部转成GBK/GB2312的格式,运行也还是一样。好几天了,大家再费心帮帮忙啊
      

  9.   

    既然出现乱码!
    就说明了编码和解码不一致!
    但你的情况确实怪异!
    建议换个tomcat试试!
      

  10.   

    可以确认你的错误是编辑器的问题。比如你的JSP文件为UTF-8编码,而不是GBK编码,那么那些页面上写死的文字就会乱码,反倒是数据库的是正常的。不是到你是否使用了Eclipse,你可以重新指定一下文件的编码就行了。http://www.enjoyjava.net/viewthread.jsp?tid=579
    http://www.enjoyjava.net/viewthread.jsp?tid=580
      

  11.   

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 
    <%@ taglib prefix="spring" uri="/WebRoot/WEB-INF/spring.tld" %> 
    <%@ page language="java" contentType="text/html; charset=gbk" %> <html> 
    <head> 
    <title>123123 </title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gbk"> 
      

  12.   

    应该是你JSP保存的格式其实不是GBK.我也遇到过,很火大.明明都对的.随便换个行,就抱错.后来editplus一点点转的.
      

  13.   

    谢谢,谢谢大家的热心!我找了一个批量转码工具ultracodingswitch,
    将所有的java文件和jsp文件都转成GBK/GB2312的编码格式,tomcat的server.xml中设置useBodyEncodingForURI="true",
    eclipse-窗口-首选项-常规-内容类型-文本 
                  将Java源文件的缺省编码使用默认(空),此时,清空项目的所有临时文件和中间文件。1、项目属性-文本文件编码-从容器继承(GBK)
       这样设置的时候,运行之后刷新,系统提示_jsp.java文件中
        “标记上有语法错误,删除这些标记”
        “字符串文字未用双引号正确地引起来”
       这两种错误。
    2、项目属性-文本文件编码-其他(GB2312)
       这样设置,运行之后刷新,上述1中的错误就没有了。不过,以上2种情况,只有第一次运行tomcat时是正确的,
    一旦jsp文件被编译成java文件之后,再次启动tomcat,
    页面就会出现乱码。肯定是文件编码的问题。但是应该如何设置呢???
    以上我应该是将所有有关编码设置的地方都说清楚了,
    请各位大侠帮忙啊!!!
      

  14.   

    我比较奇怪的是GBK不是GB2312的超集么?
    为什么项目属性-文本文件编码-选择GBK和GB2312结果会不一样呢?
      

  15.   

    建议自己写一个actionservlet类来继承ActionServlet
    package com.xxxx.dao;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionServlet;public class myActionServlet extends ActionServlet {
    @Override
    protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {     /**@todo Override this org.apache.struts.action.ActionServlet method*/     request.setCharacterEncoding("GBK");   
       super.process(request, response);  
    }
    }然后将web.xml文件里的<servlet-name>action</servlet-name>内容改成这样
    <servlet-name>action</servlet-name>
        <servlet-class>com.xxxx.dao.myActionServlet</servlet-class>为了保险点,在所有的JSP里的
    <%@ page contentType="text/html;charset=GBK" language="java" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
    这三句话之后再加三句
    <%
    response.setContentType("text/html; charset=GBK");
    response.setCharacterEncoding("GBK");
    request.setCharacterEncoding("GBK");
     %>
      

  16.   

    试试改下Eclipse的编译设置,在编辑器的编译验证选项里把jsp编译项去掉,让eclipse不编译验证jsp文件,只编译java源文件。试试看吧
      

  17.   

    试试改下Eclipse的编译设置,在编辑器的编译验证选项里把jsp编译项去掉,让eclipse不编译验证jsp文件,只编译java源文件。试试看吧
      

  18.   

    你的页面里不会有繁体字吧,有的话,要用gbk,
      

  19.   

    最好的方法是把所有设计到编码的全部改成utf-8,基本不会有乱码问题,我在netbeans 6.0中还从没碰到过乱码,乱码的根源就是没有统一编码,包括源码编码,编译编码,以及tomcat中的编码设置等各个环节,一个环节不统一就会出现乱码。
      

  20.   

    我基本上不用GBK,GB2312,统一用UTF-8
      

  21.   

    修改tomcat中的server.xml
       解决链接与get参数传递时候中文乱码
       <Connector port="8080"  protocol="HTTP/1.1"
        maxThread="150" connectionTimeout="20000"
        redirectPort="8443"  URIEncoding="UTF-8">
        注意添加URIEncoding="UTF-8"就可以了(注意大小写)
      

  22.   

    好像jsp文本文件的编码问题啊。
      

  23.   


    问题还是没有解决。我想接受zavens的建议,所有涉及编码的统一都设置为utf-8,
    因此我想请教一下都有哪些地方需要设置。1、tomcat server.xml的<Connector>中加入URIEncoding="UTF-8"2、项目中的web.xml的<filter>中加入
               <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>3、jsp页面中加入
               <%@page pageEncoding="UTF-8"%>
               <%@ page language="java" contentType="text/html; charset=UTF-8"%>
             <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">4、eclipse-窗口-首选项-常规-内容类型-文本 
                  将*.java、*.jsp的缺省编码改为UTF-85、项目-右键-属性-文本文件编码(从容器继承GBK)改成UTF-8以上这5个方面,不知道哪些是必须的,哪些改的不正确的,或者还有哪些遗漏,请大侠指点!!!感谢!!!
      

  24.   


    zavens老兄不是全部设置的utf8么,
    给指点一下啊呵呵