Java Web 开发中乱码问题的处理

来源:互联网 发布:徐州网络优化 编辑:程序博客网 时间:2024/04/27 17:02

(1)通用处理方案

接收客户端数据时,数据乱码处理措施如下:

Code:
  1. // (1)以GET方式发送的数据,接收时应做以下处理:   
  2. String temp=new String(request.getParameter("ISO-8859-1"),"GBK");   
  3. // (2)以POST方式发送的数据,接收时应做以下处理:   
  4. request.getParameter("GBK");  
  5.  

将处理后的数据返回给客户端时,数据乱码处理措施如下:
 

Code:
  1. //将服务器端处理后的数据返回给客户端时,避免乱码应采用如下措施   
  2. // 首先,应统一页面的编码格式   
  3. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%>   
  4. //其次,应对从服务器端返回的数据进行处理:   
  5. response.setContentType("text/html;charset=GBK");  
  6.  


(2)过滤器处理乱码问题

Code:
  1. import javax.servlet.*;         
  2. import java.io.IOException;         
  3.         
  4. /**      
  5.  * 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题      
  6.  */        
  7. public class CharacterEncodingFilter         
  8.  implements Filter         
  9. {         
  10.  protected FilterConfig filterConfig = null;         
  11.  protected String encoding = "";         
  12.         
  13.  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletExceptio{         
  14.         if(encoding != null)         
  15.          servletRequest.setCharacterEncoding(encoding);         
  16.         filterChain.doFilter(servletRequest, servletResponse);         
  17. }         
  18.         
  19.    public void destroy(){         
  20.        filterConfig = null;         
  21.        encoding =null;         
  22.    }           
  23.         
  24.    public void init(FilterConfig filterConfig) throws ServletException {         
  25.         this.filterConfig = filterConfig;         
  26.         this.encoding = filterConfig.getInitParameter("encoding");         
  27.         
  28.    }          
  29. }  
  30.  

   web.xml配置如下:

Code:
  1. <filter>
  2.    <filter-name>CharacterEncodingFilter</filter-name>         
  3.    <filter-class>CharacterEncodingFilter</filter-class>         
  4.    <init-param>         
  5.         <param-name>encoding</param-name>         
  6.         <param-value>UTF-8</param-value>         
  7.    </init-param>         
  8. </filter>         
  9. <filter-mapping>         
  10.    <filter-name>CharacterEncodingFilter</filter-name>         
  11.    <url-pattern>/*</url-pattern>         
  12. </filter-mapping>  
  13.  


                     

 

原创粉丝点击