标签:
一. 统一所有的编码格式
(1)JSP页面设置:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
(2)设置编辑器默认的编码格式
例如,我的编辑器是myeclipse,全局编码设置的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding
局部编码设置:在源码按右键-->General-->Editors-->Test Editors-->Spelling-->Encoding,这里是设置单个文件的编码。
二. 使用过滤器filter
首先自己编写一个过滤器
1: package com.bigdata.util;2:3: import java.io.IOException;4: import javax.servlet.Filter;5: import javax.servlet.FilterChain;6: import javax.servlet.FilterConfig;7: import javax.servlet.ServletException;8: import javax.servlet.ServletRequest;9: import javax.servlet.ServletResponse;10:11: public class CharacterEncodingFilter implements Filter{12: protected FilterConfig filterConfig = null;13: protected String encoding ="";14: @Override15: public void destroy() {16: // TODO Auto-generated method stub17: filterConfig = null;18: encoding = null;19: }20:21: @Override22: public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,23: FilterChain filterChain) throws IOException, ServletException {24: // TODO Auto-generated method stub25: if(encoding != null && !"".equals(encoding))26: servletRequest.setCharacterEncoding(encoding);27: filterChain.doFilter(servletRequest, servletResponse);28: }29:30: @Override31: public void init(FilterConfig arg0) throws ServletException {32: // TODO Auto-generated method stub33: this.filterConfig = arg0;34: this.encoding = filterConfig.getInitParameter("encoding");35: }36:37: }
接着,在web.xml中配置过滤器
1: <filter> 2: <filter-name>characterEncodingFilter</filter-name>3: <filter-class>com.bigdata.util.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>三. 终极绝招
如果前两个方法试过之后,依然无法解决乱码问题,可以试试这个终极绝招
1: String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")
标签:
原文地址:http://www.cnblogs.com/bloodhunter/p/4579116.html