您的位置:首页 > 编程语言 > Java开发

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

2010-09-09 09:36 423 查看
(1)通用处理方案

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

Code:

// (1)以GET方式发送的数据,接收时应做以下处理:

String temp=new String(request.getParameter("ISO-8859-1"),"GBK");

// (2)以POST方式发送的数据,接收时应做以下处理:

request.getParameter("GBK");



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



Code:

//将服务器端处理后的数据返回给客户端时,避免乱码应采用如下措施

// 首先,应统一页面的编码格式

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%>

//其次,应对从服务器端返回的数据进行处理:

response.setContentType("text/html;charset=GBK");



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

Code:

import javax.servlet.*;

import java.io.IOException;



/**

* 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题

*/

public class CharacterEncodingFilter

implements Filter

{

protected FilterConfig filterConfig = null;

protected String encoding = "";



public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletExceptio{

if(encoding != null)

servletRequest.setCharacterEncoding(encoding);

filterChain.doFilter(servletRequest, servletResponse);

}



public void destroy(){

filterConfig = null;

encoding =null;

}



public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;

this.encoding = filterConfig.getInitParameter("encoding");



}

}



web.xml配置如下:

Code:

<filter>

<filter-name>CharacterEncodingFilter</filter-name>

<filter-class>CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: