一个工程,使用的是UTG-8的编码,有其中一的类(servelt)是使用了GBK的编码。
程序可以正常的运行(因为这个servelt里有一个句request.setCharacterEncoding("GBK")),但一进入调试,所有的注解都成了乱码,而且调试的代码不同步。
请高手给我讲一讲什么原因。
   补上:1、控制台上输出的中文没有乱码。
        2、重写了这个类,但进入调试,情况如上。
        3、把这个类的编码改为了UTF-8不起作用。
急!!在网上等!

解决方案 »

  1.   

    有其中一的类(servelt)是使用了GBK的编码。 改一下不就行了,我来告诉你个便捷的方法,包你满意!
    1 在GBK下,全选,复制整个源代码
    2 修改编码类型为UTF-8,此时全变成乱码
    3 ... 你猜到了吧,全选,粘贴搞定!
      

  2.   

    还不行,这样的话,它重新打开一个类,与原来的servelt类同名,所有的注解一样是乱码。
      

  3.   

    支持竹子的方法,不是让你重新写一个类,先把工作区设置成GBK --》 全选 --》工作区设置UTF-8 --》把这个类清空,再粘贴。设置工作区编码方法: window -- preferences -- general -- workspace 在右边选择就可以了
      

  4.   

    自己写个 过滤器 继承自 filter 这个类 、
    下面有两个方法 第一个方法重写 、
    public class SetCharacterEncodingFilter implements Filter{
      
      public void destroy(){
        // TODO 自动生成方法存根
        
      }
      
      public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
        request.setCharacterEncoding("GBK");
        response.setCharacterEncoding("GBK");
        response.setContentType("text/html;charset=GBK");
        
        chain.doFilter(request,response);
        
      }
      
      public void init(FilterConfig filterConfig) throws ServletException{
        // TODO 自动生成方法存根
        
      }
    在到 配置文件里配置下就可以了
      

  5.   

    写一个过滤器,如楼上的代码.建议你工程里面用一种编码格式。其实你这种问题我以前都遇到过,乱码问题解决的方法是加上
    <%@ page language="java" contentType="text/html; charset=GBK"%>注意编码格式要统一,我记得当时的情况和你一样,加上这段代码之后有的汉字还是不出来。成了乱码,而又的汉字却可以显示。后来统一编码格式。就好了。至于说调试不同步的问题:好像是在缓存的问题。在tomcat里面找到work的文件夹,然后把里面的内容删了。就好了.
      

  6.   

    搞了一整天,把整个项目的编码改为“GBK”就好了!