1、如果乱码是从jsp页面出现的,jsp头部页面加上:
package com.sharep.filter;//包名
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
{
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else
this.ignore = false;
}
FilterChain chain) throws IOException, ServletException
{
if (ignore || (request.getCharacterEncoding() == null))
{
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
{
this.filterConfig = null;
}
{
return (this.encoding);
}
}
然后在web-inf的web.xml中加上如下代码:
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>com.young.filter.SetCharacterEncodingFilter</filter-class>//注意这里是类名,要有完整包名
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
user = "";//一般是root
password = "";//相应密码
url = "jdbc:mysql://localhost:3306/dbname?autoReconnect=true&useUnicode=true&characterEncoding=utf8";//注意这里是utf8,而不是utf-8,
con = DriverManager.getConnection(url, user, password);
第一种方式影响一个数据库,且数据库以后移植到其他地方还能用,至于用数据库连接池,方法差不多,就是用url那一部分了
在mysql安装目录中有个my.ini(或my.cfg)文件,找到
default-character-set=latin1
改为
default-character-set=utf8
















