package com.sxt.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharSetFilter implements Filter {
private String charsetName = "UTF-8";
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("============================");
req.setCharacterEncoding(charsetName);
resp.setCharacterEncoding(charsetName);
chain.doFilter(req, resp);
}
@Override
public void init(FilterConfig chain) throws ServletException {
// 初始化. Filter实例创建后,在服务执行前,初始化的代码
// 读取配置文件中的配置信息,进行字符集设定.
String charsetName = chain.getInitParameter("charsetName");
if(charsetName == null){
return;
}
if(charsetName.trim().length() == 0)
return;
this.charsetName = charsetName;
}
}
字符集:
req.setCharactorEncoding() resp.setCharactorEncoding() 请求体和响应体的字符集
workspace charset
pageEncoding
contentType
URIEncoding: get请求字符集 , 请求头字符集
头信息字符集默认为ISO-8859-1
server.xml中修改
尽量不要修改配置.
String name = "xxxxx";
byte[] bs = name.getBytes("ISO-8859-1");
name = new String(bs, "UTF-8");
[数据库]
数据库URL:
jdbc:mysql://localhost:3306/spring?useUnicode=true&charactorEncoding=UTF-8
[检查是否是统一字符集为非UTF-8, 且使用了jQuery等JavaScript插件.]
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharSetFilter implements Filter {
private String charsetName = "UTF-8";
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("============================");
req.setCharacterEncoding(charsetName);
resp.setCharacterEncoding(charsetName);
chain.doFilter(req, resp);
}
@Override
public void init(FilterConfig chain) throws ServletException {
// 初始化. Filter实例创建后,在服务执行前,初始化的代码
// 读取配置文件中的配置信息,进行字符集设定.
String charsetName = chain.getInitParameter("charsetName");
if(charsetName == null){
return;
}
if(charsetName.trim().length() == 0)
return;
this.charsetName = charsetName;
}
}
字符集:
req.setCharactorEncoding() resp.setCharactorEncoding() 请求体和响应体的字符集
workspace charset
pageEncoding
contentType
URIEncoding: get请求字符集 , 请求头字符集
头信息字符集默认为ISO-8859-1
server.xml中修改
尽量不要修改配置.
String name = "xxxxx";
byte[] bs = name.getBytes("ISO-8859-1");
name = new String(bs, "UTF-8");
[数据库]
数据库URL:
jdbc:mysql://localhost:3306/spring?useUnicode=true&charactorEncoding=UTF-8
[检查是否是统一字符集为非UTF-8, 且使用了jQuery等JavaScript插件.]