终于解决了myeclipse困扰我许久的乱码问题!!

原创 2006年12月06日 15:20:00

1、request.getparameter 中的乱码问题的解决方法

处理方法一:

不知道什么时候开始(好像是在一次重新安装了myeclipse后),我从在java代码中的request.getparameter获取中文参数值的结果变成了乱码,上网搜索了一番,暂时得到这么一个解决方法:

(1)、首先在jsp页面首部添加这么一段:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>  

(2)、那么下一步(jsp或者java)如果从上面这个jsp中获取某一参数时(如companyName),要这么处理:

QuestionaryManager qManager = new QuestionaryManager();
  String companyName = (String) request.getParameter("companyName");  
  String gCompanyName = "";
    try {
   gCompanyName = new String(companyName.getBytes("ISO-8859-1"), "GBK");//经过zhuanma
  } catch (Exception ex) {
   System.out.println(ex.getMessage());
  }

 companyName 是乱码,经过转码处理后,gCompanyName 就是正常字符了。

这样做很笨,很麻烦!增加的代码量可壮观了!并且维护起来麻烦!

处理方法二:

在web.xml里面加过滤器,一劳永逸!

(1)、先添加这么一个转码的类

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public final class CharacterEncodingFilter
    implements Filter
{
    public CharacterEncodingFilter()
    {
     System.out.println("==CharacterEncodingFilter==");
        encoding = "gb2312";
        ignore = false;
    } 

  
    public void init(FilterConfig config)
    {
     System.out.println("==init==");
        if(config.getInitParameter("encoding") != null)
            encoding = config.getInitParameter("encoding");
        if(config.getInitParameter("ignore") != null)
            ignore = (new Boolean(config.getInitParameter("ignore"))).booleanValue();
    }
 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException
    {
     System.out.println("==doFilter==");
        HttpServletRequest req = (HttpServletRequest)request;
        HttpServletResponse res = (HttpServletResponse)response;
        if(!ignore)
        {
            req.setCharacterEncoding(encoding);
           // res.setCharacterEncoding(encoding);
        }
        chain.doFilter(request, response);
    }

    public void destroy()
    {
    }

    private String encoding;
    private boolean ignore;
}
(2)、在web.xml里面添加过滤器filter:

 <filter>
     <filter-name>Set Character Encoding</filter-name>
     <filter-class>CharacterEncodingFilter</filter-class>  //这是上面那个类的包路径和类名
     <init-param>
      <param-name>encoding</param-name>
      <param-value>GBK</param-value>
     </init-param>
 </filter>
 
 <filter-mapping>
     <filter-name>Set Character Encoding</filter-name>
     <url-pattern>*.do</url-pattern> //过滤所有.do文件
 </filter-mapping>
 
 <filter-mapping>
     <filter-name>Set Character Encoding</filter-name>
     <url-pattern>*.jsp</url-pattern>  //过滤所有.jsp文件
 </filter-mapping>

 这样,所有的request.getparameter都会经过这个过滤器处理,乱码问题就没有了,而且可以任意修改<param-value>GBK</param-value>,想怎么encodeing,就怎么encoding!

2、在myeclipse中查看jsp文件的时候,jsp中的中文无法正常显示,乱码!!

在myeclipse中右键点击jsp文件,选择properties,在text file encoding中选择Other,在下拉框中输入GBK,然后Apply——〉OK,搞定!

一直都没想过这个下拉列表可以输入东西,只想下拉列表中没有GBK,选不上这项,没想到可以自己输进去,汗,折腾了许久呢!!

如何解决MyEclipse中的乱码问题

 一、设置新建常见文件的默认编码格式,也就是文件保存的格式。 Window-->Preferences-->General -->content Types 在右侧窗口中展开每一个子项,依...
  • hongya1109110121
  • hongya1109110121
  • 2014年02月28日 23:58
  • 2792

困扰许久的文泉驿显示慢问题终于解决了

前言:很久没写了。5月忙着申请Google Summer of Code,六月忙着申请实习,现在忙着实习,果然,blog只有闲着的时候才能写……现在在北京千橡实习中,做ATL/WTL,一切都还算顺利,...
  • Yasker
  • Yasker
  • 2006年07月23日 13:58
  • 2982

一个困扰我许久的问题解决了

这是我工程的配置文件,用的是动态菜单形式完成查询功能。 ...
  • yyqkn2015
  • yyqkn2015
  • 2016年09月28日 13:45
  • 417

辞旧迎新,跃马扬鞭------联想YOGA平板销量过百万的启示

2013年刚刚过去,2014年已然到来,众所周知,一般岁末年初商家都会搞出各式各样的促销活动,以满足消费者需求,而对联想来说,这次的“跨年演出”显然不同凡响,和往常所不同的是,本次担纲演出的主角是联想...
  • feitianhanxue
  • feitianhanxue
  • 2014年01月03日 08:39
  • 1173

myeclipse过期以后提示过期以后怎么办?!

昨天电脑上装的myeclipse到期了,不能进到工作空间里边,只有激活和退出选项,在网上百度了一下,有很多破解工具, 1。刚开始直接使用工具破解,没有成功,总是提示要么激活,要么退出 2。继续想办...
  • a13935302660
  • a13935302660
  • 2017年05月27日 12:00
  • 1939

Java笔记5:解决MyEclipse控制台输入中文乱码输出问题(Eclipse也可以用)

由于最近两天在玩下socket通话,突然在控制台输入的中文都是乱码了。Scanner input = new Scanner(System.in);String str=input.next();这样...
  • fen584521
  • fen584521
  • 2016年08月04日 21:35
  • 161

终于解决了困扰我至少5个小时的链接错误

今天就要拿出程序来,可偏偏就是编译不过!链接错误!又见链接错误:error LNK2001: unresolved external symbol  xxxxxxxxxxxxxxxxxx我遇见这个错误...
  • liigo
  • liigo
  • 2007年02月09日 22:35
  • 1762

一道困扰我许久的while循环题

2012年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? int year=2012; double num=80000; while(num...
  • qianquan3
  • qianquan3
  • 2013年08月30日 20:51
  • 775

MyEclipse中JS乱码问题

1.把JS文件导入到myeclipse里,文件内的中文字会变成乱码。 解决方法:选择"window">>"preferences">>"general">>"content types"在右边的窗口中...
  • puweilan
  • puweilan
  • 2011年05月25日 21:08
  • 4056

困扰我多次的内存溢出问题终于解决了

viewpager+fragment +多图 简直要命,滑动到第10个fragment左右就会内存溢出 说是内存溢出,其实是内存泄漏。图片加载开源库有很多,我用的是Glide,Glide会回...
  • u011291302
  • u011291302
  • 2015年12月04日 17:28
  • 11221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:终于解决了myeclipse困扰我许久的乱码问题!!
举报原因:
原因补充:

(最多只允许输入30个字)