您的位置:首页 > 其它

关于解决中文乱码问题的总结

2009-11-19 13:59 369 查看
自己总结的不好请大家补充:

在做项目中,可能很多人都会遇到中文乱码问题,我也遇到过,但每次都还是迅速的解决了,下面我就小小总结一下:

1.做一个项目,避免出现中文乱码,从底层到顶层的编码格式必须一致(从建数据表到表示层),最好采用gbk、gb2312

2.对于建数据表时,对于Access与Oracle数据库不需要设置字段编码格式,对于MySQL数据库需要设置编码格式且与表示层页面编码一致.

3.对于JSP+Servlet+javabean这种简单的框架,首先对于jsp页面要求编码一致,

在头部<%@ page Xlanguage="java" import="java.util.*" pageEncoding="XXXXXX"%> 设置编码格式,

在<head></head>中加入<meta http-equiv="Content-Type" content="text/html; charset=XXXXX">最好不过。

在servlet 的service方法中,以传值为post为例,request.setCharacterEncoding("XXXX"),对于中文传递过来的参数就解决了

4.对于Struts1 中,页面那些设置就和上面JSP+Servlet++javabean一致,对于比如查询等参数的时候还是不能解决问题,以传值为post为例,你可以在Form中的reset方法中加入:

try {
request.setCharacterEncoding("UTF-8");

} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}即可

更好的方法是编写过滤器类Filter,通过过滤器来处理乱码问题,我写了一个过滤器类,只是要是贴上来我说的东西就太多了,所以就不贴了,有需要了可以给你。

4.对于Struts2,页面那些设置就和上面struts1一致,最好的建议是编写拦截器Interceptor,这里对于如何编写与配置徐老师已经讲了,我就不多说了。 我也写了一个对于post与get 传参的两种方式都可以处理的Interceptor,如果需要也可以找我。我就不发在这上面了。

注: 出现中文乱码一般都是传参的时候,就两种麻post与get ,如果是post,就用request.setCharacterEncoding("xxxxx"); 如果是get就用new String(XXXX.getBytes("xxxxx"),"xxxx"); 只要你这里处理了,中文问题就不会在困扰你了。好了,总结到此结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: