在MyEclipse中 关于中文乱码解决的方法我试过了不少,比如在jsp页首设置contentType="text/html; charset=gbk",设置MyEclipse中项目的文本文件编码属性,都还是报错,就没试过用过滤器,一是不怎么会用,二是感觉太麻烦,说下我的 中文乱码问题吧,我打断点看过,是在jsp页面到Action的时候出现乱码,即在Action中接收到得是乱码,
一个登录页面,在action中我是用request.getParamter()接收的用户信息,也就是在这里出现了乱码
一个登录页面,在action中我是用request.getParamter()接收的用户信息,也就是在这里出现了乱码
//这样每次接收时都要加这一句才行,使用过滤器才是办法
request.setCharacterEncoding("gbk");
或者每次取得的参数转换下,new String(request.getParameter("").getBytes("iso-8859-1"),"gbk")
例如:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
老是要设编码,很烦.
使用过滤器, 保证不会出现乱码filter.java
package com.deng.EncodingFilter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class filter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
chain.doFilter(request, response);
} public void init(FilterConfig arg0) throws ServletException { }}web.xml<filter>
<filter-name>encoding</filter-name>
<filter-class>com.deng.EncodingFilter.filter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6楼也是一种解决方法,不过建议用过滤器
不过有时还要去TOMCAT容器中去设置下字符编码,可以参考9楼的