使用myeclipse插入資料到mysql 出現中文亂碼|utf8亂碼解決方案[適合tomcat部署的jsp應用]
java類: CharacterEncodingFilter
import javax.servlet.*;
import java.io.IOException;public class CharacterEncodingFilter implements Filter {
private String encoding = “UTF-8”;
private boolean forceEncoding = true;/**
- Set the encoding to use for requests. This encoding will be
- passed into a ServletRequest.setCharacterEncoding call.
Whether this encoding will override existing request
- encodings depends on the “forceEncoding” flag.
*/
public void setEncoding(String encoding) {
this.encoding = encoding;
}
/**
- Set whether the encoding of this filter should override existing
- request encodings. Default is “false”, i.e. do not modify encoding
- if ServletRequest.getCharacterEncoding returns a non-null value.
*/
public void setForceEncoding(boolean forceEncoding) {
this.forceEncoding = forceEncoding;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter(“encoding”);
String force = filterConfig.getInitParameter(“forceEncoding”);
this.forceEncoding = (force == null) || Boolean.valueOf(force).booleanValue() ;
}public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
if (this.forceEncoding || servletRequest.getCharacterEncoding() == null) {
servletRequest.setCharacterEncoding(this.encoding);
}
filterChain.doFilter(servletRequest, servletResponse);
}public void destroy() {
}
}
- 在web.xml配置檔案里加Filters Configurations
CHARACTER_ENCODING
common.encoding.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
CHARACTER_ENCODING
/*
3.資料庫建立為UTF-8格式
4.專案右鍵屬性為UTF-8格式
5.所有頁面申明為UTF-8
6.JDBC URL設為:UTF-8
jdbc:mysql://localhost:3306/databaseuse?useUnicode=true&characterEncoding=utf-8
7.資料庫Driver選擇UTF-8格式
8.Tomcat編碼改成UTF-8
在server.xml裡面增加URIEncoding=”UTF-8”