CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

可恶的乱码

楼主gdsy()2005-05-31 13:47:03 在 Java / Web 开发 提问

<bean:write   name="personbean"   property="userName"   />  
  写出来的中文都乱码,页面我设了<%@   page   contentType="text/html;   charset=gb2312"   language="Java"   %> 问题点数:20、回复次数:8Top

1 楼gdsy()回复于 2005-05-31 14:25:04 得分 0

up,up...Top

2 楼guo__peng(guo__peng)回复于 2005-05-31 14:35:02 得分 20

Jsp中文乱码小议  
                          -------郭鹏  
  Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。  
  首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:  
  <%   page   contentType="text/html;   charset=gb2312"   %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据.   而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。  
  具体实例归纳了以下几点,也许会对大家有一些帮助。  
  1、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码  
  <%   page   contentType="text/html;   charset=gb2312"   %>  
  此方法是解决JSP页面显示时的乱码。  
  2、 有时还需在HTML代码中的<head></head>中加入这句  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  3、 在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下  
  String   str=new   String(strName.getBytes(“iso-8859-1”),”GB2312”);  
  具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String   str=new   String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);  
  这样,存入数据库的数据库的数据就可见了。  
  4、 对于页面间的参数传递也可以用这个方法来处理乱码问题:  
        public   String   getStr(String   str)  
        {  
                try  
        {  
              String   temp_p=str;  
      byte[]   temp_t=temp_p.getBytes("ISO8859-1");  
      String   temp=new   String(temp_t);  
      return   temp;  
        }  
        catch(Exception   e)  
        {}  
        return   "null";  
  }  
  5、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码  
  <form   enctype="multipart/form-data"></form>  
  6、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。  
   
   
  Top

3 楼zhl7522(陵云)回复于 2005-05-31 14:35:05 得分 0

你得在BEAN里加一个<%request.setCharacterEncoding("gb2312");%>Top

4 楼gdsy()回复于 2005-05-31 16:05:04 得分 0

在ActionForm   Bean的set方法中用String   str=new   String(strName.getBytes(“iso-8859-1”),”GB2312”);转编码后,问题解决了.谢谢.Top

5 楼yimm8369(英子)回复于 2005-05-31 16:14:12 得分 0

String   ye1   =   request.getParameter("ye1");  
  ye1   =   new   String(ye1.getBytes("ISO8859_1"),   "GB2312");  
   
  这样也可以哦  
  Top

6 楼gdsy()回复于 2005-05-31 17:22:12 得分 0

yimm8369(英子),我是用Struts里的<bean:write   ....>标签Top

7 楼Harbin_SAKURA(樱)回复于 2005-05-31 17:52:32 得分 0

楼主最好把jsp页面上的charset设置为GBK,不要用gb2312Top

8 楼andraw2002(§★☆)回复于 2005-05-31 18:02:36 得分 0

WEB-INF/web.xml中加这一句:  
   
      <context-param>    
  <param-name>weblogic.httpd.inputCharset./*</param-name>    
  <param-value>GBK</param-value>    
      </context-param>  
  Top

相关问题

  • QQ木马GOP好可恶,天天在打印机上乱打东西,不停的打,而且全是乱码。
  • 可恶!!!!
  • 乱码?
  • 乱码!!!!
  • 乱码?
  • 乱码
  • 乱码
  • 乱码
  • 乱码????????????????????
  • 乱码

关键词

  • 乱码
  • 编码
  • 页面
  • 字符
  • 数据库
  • 字符集
  • 解决
  • 中文
  • 数据
  • jsp

得分解答快速导航

  • 帖主:gdsy
  • guo__peng

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo