以 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 encoding
String 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>
处理好这三部分就应该差不多啦