java web程序中文乱码解决方案

作者:呆子 发布于:2008年10月16日 17:51

由于程序语言是老外弄的,乱码问题是所有程序员都不可避免的。尤其是用java时,中文乱码是每一位初学者头疼的问题。下面呆子对乱码问题提供全套的解决方案,希望对北风的网友有所帮助!

一、先说说编码,中文编码有GB2312、GBK,所以大伙在出现乱码时都喜欢这样来解决!呆子必须承认,这个办法是可以解决问题的,没有任何错误。但呆子不认为这是最好的办法,最好的办法应该采用UTF-8编码,具体原因自己百度一下,本文不予说明。

二、说说JSP乱码问题:对初学者来说JSP出乱码是很正常的一件事,解决办法也相对简单:下面看呆子如何解决:
a.在jsp页面头部加入<%@ page contentType=”text/html; charset=utf-8″ %>
b.在jsp页面的<title></title>上方最好加上一句<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
c.注意,本方法只能解决jsp页面自身的问题,及jsp表单传递的编码问题。。确保不是乱码。

三、说说servlet乱码问题:看完二的朋友得骂呆子了,将jsp的数据传到servlet时仍然是乱码。下面提供servlet乱码的解决方案:

a.如果你要在当前servlet中输出数据,那么请加入这两句
res.setContentType(”text/html;charset=utf8″);
注意:charset可有可无的。

res.setCharacterEncoding(”utf8″); 这两句的作用就可以保证你输出的文字没有乱码。

当然有的朋友说只要最上面这句就行了,理论上是对的,但呆子做的过程中发现在当前servlet中显示正确。
但如果你要继续转向其他页面很有可能就错了。原因呆子没有认真研究。

b.如果你要获取来自表单等提供的数据的话,请加入这句:
req.setCharacterEncoding(”utf8″);

四、说说编辑工具乱码问题:DW不讲了。说说eclipse,在首选项里找到jsp页面等的encoding这一项,选择utf8,如果有很多种选法,就选utf8 unicode项。然后改一下相关的模板,这样就解决了。说说记事本之类的工具,在你设置为utf8字符后,在保存时要更改编码选项,选择utf8就OK了。因为记事本默认是ANSI码。如果不更改的话,那永远都是乱码。

五、说说ajax,在ajax应用中乱码也很常见。。记住一条,servlet中与上文一样,如果集合struts使用则在相关Action中加入在servlet中使用的那两条语句就解决了。

中文乱码的问题太多了,小弟将在下次再详述数据库乱码、及解决中文乱码之过滤器应用。敬请期待!!!

作者:呆子
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/ietjfdnv/20081016155.shtml

( 内容完 )

添加收藏到:

您可能还对这些文章感兴趣:

  • 认识安全框架acegi(3)
  • 版权声明
  • 不好驯服的析构函数
  • 大学生在技术面前我们如何去看待社会认证
  • 修改对象私有属性
  • 改进架构,实现动态数据源,降低java维护
  • 给学习java的应届生找工作的一些建议
  • IP及IP段进行访问限制的代码
  • ikon999原创:JsUnit测试之三
  • 认识安全框架acegi(5)
  • 6条评论, 我来评论

    1. 刘星辰

      不错 说的好 初学者确实容易遇到这个问题

    2. huangzhefeng

      看的时候知道的,写代码的时候总是要缺几个页面和类不写这些语句,这个问题确实很烦,好好学习过滤器…

    3. rock871029

      没入精华啊!关于get和post提交的不同,也会出现乱码,解决下吧

    4. yqsshr

      乱码问题让很多想我一样的初学者找不到头绪,作者能归纳一下真是太好了,感觉作者讲的很真切,都是实际开发中的经验之谈,期待作者接下来的文章~~

    5. 匿名

      还有iframe的问题。

    6. 匿名

      请问一下,如何修改才能使MyEclipse新建jsp时默认页面编码为utf-8?

    小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
    类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
    请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
    如果您发现自己的评论没有被审核或者不见了,请参考以上三条。

    每周之星

    陈臣陈臣

    七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。

    更多作者:

  • Adam
  • ikon999
  • jk1234
  • jk2345
  • libin_8745
  • lifengxing
  • taohuang100
  • xingkong
  • 北风
  • 呆子
  • 子晨
  • 小白
  • 张章
  • 张维亮
  • 陈臣
  • 陶宝哥
  • 风风
  • 最新内容

    推荐内容

    标签

    分类