免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1060 | 回复: 0
打印 上一主题 下一主题

jsp+struts+mySql开发 中文乱码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-02 00:55 |只看该作者 |倒序浏览
    刚开始做这个项目的时候,就了解到有中文乱码问题,一直以来我也尽量避免接触这个问题,据说这问题还比较麻烦,所以,想等到开发后期来解决他。
    现在,开发基本完成一大部分了,开始重点解决这个乱码问题。
    网上也说了很多这方面的解决方案,具体问题应该具体解决,乱码问题有很多原因的,可能我的这个问题是比较简单的吧~~
    设计数据库的时候,我就考虑到这个问题了,所以把所有表都设成了“GBK”编码,可以支持中文。用sql命令直接插入中文的时候,没有问题,select可以显示中文,说明我的sql设置是正确的。
    所有的jsp文件我都加了这样一句“contentType="text/html; charset=GBK"”,jsp页面也是GBK编码的,防止和数据库的编码产生冲突。
    这样设置后,提交表单的内容还是乱码,传到数据库和从数据库中读中文都会是乱码。
    因为jsp页面在提交表单时的request用的是iso-8859-1编码方式,所以当我们得到传来的中文的时候,需要将iso-8859-1编码进行译码再编码成GBK编码。用GBK编码在jsp页面和数据库中显示和存储中文,编码方式不同,所以会出现乱码问题。
    例:
    我们将request中的name字段进行译码和编码,然后村到str中
    String str = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"GBK");//"GBK"不写也可以,会默认为GBK编码
    好了,用str就不会出现乱码了。

    在MVC开发过程中,我们可以在action读取form表单前,对表单内有中文的内容进行上面的处理,这样就可以啦~~

    注:网上还看到这样的方法
    request.setCharacterEncoding("GBK");来改变request传值的编码方式,在tomcat 5中是不行的,我试过,在网上找了找原因,没找到,不知道为什么。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21185/showart_290433.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP