大大毛 的笔记

  DDM's Note

哪怕没有办法一定有说法,
就算没有鸽子一定有乌鸦,
固执无罪 梦想有价,
让他们惊讶.

posts - 14, comments - 23, trackbacks - 0, articles - 58
   :: 首页 ::  :: 联系 ::  :: 管理

Struts中文问题的暂时解决

Posted on 2006-07-24 01:15 大大毛 阅读(220) 评论(0)  编辑  收藏 所属分类: Struts

   跟大家一样,我在学习Struts的过程中,也不可避免的遇到这个问题,综合网上说的再加上实践,暂时有了解决方案(说它暂时是不知道各种情况下都能适用),反正以后遇到例外再改吧.

   解决问题的核心就是要统一使用Unicode编码(UTF-8)需要从以下几个方面着手
      1.JSP页面编码
         这个较容易搞定,只需要指定页面的contentType="text/html;charset=UTF-8"即可
      2.资源文件编码
         这个是针对国际化来讲的,如果只有E文的资源,那是不可能出问题的,如果有其它语种的资源文件,需要进行编码,如果手工做的话需要用到 JDK/lib 目录下的 native2ascii.exe 工具进行命令行的操作,Eclipse下省心的方法也有,就是去下个插件
JInto ,让"国际化"的大师们来做这些民工活好了,这个插件还可以对照着多语种进行资源文件的编辑,easy啊.
      3.页面输入编码
         说具体点就是从JSP页面form提交上去的中文数据,回显及插入到数据库中都成了乱码,这个我在网上查了,有说用Fileter的,不过看着就挺麻烦啊,有个挺简单的解决方法就是用自己的ActionServlet替换缺省的那个,具体操作是:
         (1)定义一个类,让它extends ActionServlet ,覆盖process方法

protected   void  process(HttpServletRequest request, HttpServletResponse response)  throws  java.io.IOException, javax.servlet.ServletException {

       request.setCharacterEncoding(
" utf-8 "
);   
       
super
.process(request, response);  
    }

         (2)修改web.xml文件中的<servlet-class>元素,把这个标签的内容指向自己的类;

   到此问题解决,不过我在使用中也注意到一个有趣的现象,运行后生成的Web页面有一个特点,就是从IE的 "查看/编码方式" 上可以看到IE自动使用的是UTF-8编码,而你如果换成 "简体中文GB2312"的话得到的将是一个乱码页面


只有注册用户登录后才能发表评论。


网站导航:
 

i am ddm