web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 字符过滤器-->
   <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.pro.filter.EncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>*.act</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>*.html</url-pattern>
  </filter-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
EncodingFilter.javapackage com.pro.filter;
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 EncodingFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig fc) throws ServletException {
this.filterConfig = fc;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

String encoding = filterConfig.getInitParameter("encoding");
req.setCharacterEncoding(encoding);
res.setCharacterEncoding(encoding);
res.setContentType("text/html;charset=" + encoding);
System.err.println("encoding"+encoding);
System.err.println(req.getCharacterEncoding());
System.err.println(res.getCharacterEncoding());
System.err.println(res.getContentType());
chain.doFilter(req, res);
}
public void destroy() {
this.filterConfig = null;
}
}
index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>   <form action="test.jsp" method="get">
    <input type="text" name="message" />
    <input type="submit">
   </form>test.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
   <%=request.getParameter("message") %> index.jsp 和test.jsp  我 只粘了关键代码。提交数据中文总是乱码 无限崩溃中Tomcat 5.5 和6.0 都试过了。 配置文件 service.xml 中的配置也更改过。也不行。 myeclispe 版本是8.5 的。 暂未使用struts 或hibernate 又或spring 等框架。 只是简单创建了一个工程 添加了过滤器,修改了web.xml 。写了两个jsp 页面。   乱码无线循环中http://topic.csdn.net/u/20110810/21/bb4660e1-37ea-47d6-aca7-2b3029ce7681.html 这篇帖子中的回答仍没解决问题。
求解 在线等。 要是闲分少。 可以再开帖

解决方案 »

  1.   

    1你是传参是中文, 2还是表单里是中文1的话,用js转码,后台在解码encodeURI
    2的话 request.setCharacterEncoding("UTF-8")
    或者new String("".getBytes(), "IS0-8859-1");
      

  2.   

    如果你设置了编码为utf-8还出现乱码的话就这样去试试
    String checkType = request.getParameter("checkType"); //获取界面的值,
    checkStr = new String(checkStr.getBytes("ISO-8859-1"),"utf-8"); //将我获取到的值进行重新编码我以前每次解决不了乱码,这样都能解决的
      

  3.   

    造成乱码的地方也就那么几个地方,每个地方的编码都一致就没问题了。参考下这里:
    http://blog.csdn.net/crazylaa/article/details/5066784
      

  4.   

    本来就是post 提交的。  就是post 乱码 才换的 get
      

  5.   

    response.setContentType("text/html;charset=GBK");
    request.setCharacterEncoding("GBK");
    这样就可以解决乱码问题了
      

  6.   

    <form action="test.jsp" method="get">
    关键问题是在这,get方式提交中文必然乱码,get想不乱码只有一种方式,就是将
    要提交的内容进行URLEncoder编码。
      

  7.   

    <filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>com.pro.filter.EncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>GBK</param-value>
    把jsp里面用到utf-8都换成gbk