以 mysql为例:
1 首先是数据库的编码问题,尽量让数据库的编码和程序的编码一致起来,推荐utf-8
这又分为jdbc部分的编码设置:
a 需要指定connection url为:jdbc:mysql://localhost/dms?characterEncoding=UTF-8,注意编码部分
b 设置数据库结构的编码
2 增加字符编码过滤器(filter):
web.xml的配置:
<filter> <filter-name>Encoding</filter-name> <filter-class>com.hf.servlet.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter>
<filter-mapping> <filter-name>Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
package com.hf.servlet.filter;
import java.io.IOException;
import javax.servlet.*;
public class CharacterEncodingFilter implements Filter {// default character encodingString defaultEncoding = "UTF-8"; public void init(FilterConfig config) throws ServletException {String encoding = config.getInitParameter("encoding");if (encoding != null) {defaultEncoding = encoding;}}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding(defaultEncoding);chain.doFilter(request, response);}
public void destroy() {defaultEncoding = null;}
}
3更改jsp文件编码
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</HEAD>
处理好这三部分就应该差不多啦