关于JSP面?qing)action只需d一个EncodingFilter可以了Q代码如下:(x)
1
package cn.zhang.myznt.filter;
2
3
import java.io.IOException;
4
5
import javax.servlet.Filter;
6
import javax.servlet.FilterChain;
7
import javax.servlet.FilterConfig;
8
import javax.servlet.ServletException;
9
import javax.servlet.ServletRequest;
10
import javax.servlet.ServletResponse;
11
12
public class EncodingFilter implements Filter
{
13
private String charset = null;
14
public void destroy()
{
15
16
}
17
18
public void doFilter(ServletRequest request, ServletResponse response,
19
FilterChain chain) throws IOException, ServletException
{
20
request.setCharacterEncoding(this.charset);
21
chain.doFilter(request, response);
22
23
}
24
25
public void init(FilterConfig arg0) throws ServletException
{
26
this.charset = arg0.getInitParameter("charset");
27
}
28
29
}
30
在web.xml中注册这个FilterQ注意他的位|必L在需要调用action?qing)jsp或其他页面声明之?br />
1
<filter>
2
<filter-name>encoding</filter-name>
3
<filter-class>cn.zhang.myznt.filter.EncodingFilter</filter-class>
4
<init-param>
5
<param-name>charset</param-name>
6
<param-value>UTF-8</param-value>
7
</init-param>
8
</filter>
9
<filter-mapping>
10
<filter-name>encoding</filter-name>
11
<url-pattern>/*</url-pattern>
12
</filter-mapping>
同时在连接mysql数据库的时候也要改为jdbc:mysql://localhost:3306/mldn?useUnicode=true&characterEncoding=utf-8 如果q接在java代码中用,请?amp;Q如果是在xml中用请写成&?br />
关于mysql的collation字符集和mysql的characterSet字符集问题,查了很多资料都说要设|成一P我想那只是针对如果你选GBK作ؓ(f)数据库编码的时候所用,但如果选用UTF8作ؓ(f)数据库编码的时候就不一定正了?br />
今天Ҏ(gu)|上的资料将所有的characterSet讄成utf8Q可用mysql> SHOW VARIABLES LIKE 'character_set_%';查看Q,一直在试q问题解决没有。在试q程发现传递的中文都是正确的,可就是在MySQL Client中查看的是ؕ码,所以l找Ҏ(gu)解决Q但其实q个时候你插进ȝ中文已经是正常的了,只是在MySQL Client中显C是q。那么ؓ(f)什么会(x)q样QMySQL Client讄成UTF8的时候中文不能正常显C,此时我们应该charact_set_client Q设|成gbkQ这样就可以正常昄中文了?br />
可以在my.ini?
[mysql]
default-character-set=gbk
而下面的default-character-set=utf8Q两个default-character-set的设|是不一L(fng)。当然如果你选用gbk作ؓ(f)数据库编码,是需要设|成一L(fng)?

]]>