报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > JAVA考试认证 >
→论坛登陆 用户名  密码  
关于J2EE中的乱码解决

作者: 发布时间:2008-08-04 10:00:10 来源:育路计算机考试频道
在J2EE中,乱码问题是一个令人头痛的问题,本文就J2EE中的乱码做一个小结,以求抛砖引玉。

  首先,我们知道产生乱码的原因是因为不同的编码造成的,这就好比你和一个印地安人在说话,假设你完全不懂印第安语,而对方也不懂汉语,那你们所说的话,就会在对方的脑子里产生一个个的问号。那么怎么办呢?通常的做法,就是找一个翻译,在Java中,对编码也是这样的,来看一个例子方法一:

  1<html>
  2<body>
  3 <form action="demo02.jsp" method="post">
  4 用户名:<input type="text" name="uname">
  5 <input type="submit" value="go">
  6 </form>
  7</body>
  8</html> 这是一个简单的提交页面Deom01.html

  <%@page contentType="text/html;charset=gbk" %>
  <html>
  <body>

  <h1>输入内容为:<%=request.getParameter("uname")%></h1>
  </body>
  </html>
  以上是一个对Deom01.html进行处理的JSP页面,其作用是为了取出Demo01的Uname值并显示,

  输入内容为:??
  当我们在页面Deom01中输入中文并提交好,发现提交后的显示内容为“?”号,这里,就相当于上面的不同语种的人说话一样,产生了“?”号,那么解决的办法,就是通过转换来解决这一问题:

  <%@page contentType="text/html;charset=gbk" %>
  <html>
  <body>
  <%
  /**//*String name=request.getParmaeter("uname");//取得uname的值
  byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
  name=new String(b);//将Byte数组重新转换为所需要的格式
  */
  String name=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
  %>
  <h1>输入内容为:<%=uname%></h1>
  <%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
  </body>
  </html> 以上通过将取得的uname值转换为Byte数组,再将Byte数组转换为所需要的格式来进行转换,从而解决了乱码问题。

  方法二:设置统一的字符编码在API中的Javax.servlet.http包下,有一个HttpServletRequest接口中,有这样一个方法

  public void setCharacterEncoding(String env)
  throws UnsupportedEncoding

  其作用是设置统一的字符编码
  <%@page contentType="text/html;charset=gbk" %>
  <html>
  <body>
  <%
  /**//*String name=request.getParmaeter("uname");//取得uname的值
  byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
  name=new String(b);//将Byte数组重新转换为所需要的格式
  */
  //String name=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
  request.setCharacterEncoding("GBK");
  String name=request.getParameter("uname");
  %>
  <h1>输入内容为:<%=name%></h1>
  <%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
  </body>
  </html>

  更改后运行,发现结果和以前的一样。

  (注:GBK的范围大于GB2312 ,GB2312仅指简体中文,而GBK不仅指简体中文,还包含了繁体中文等中文。)

    育路网
 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[考试动态2008年医师资格考试网上报名须知 ·[考试动态2008年医师资格考试3月10日开始网
·[考试动态卫生部医师资格考试委员会公告 ·[考试动态2008年医师考试于9月20至21进行
·[考试动态关于北京考区2008年度国家医师资 ·[考试动态崇文区卫生局关于北京考区2008年
·[考试动态丰台区卫生局关于北京考区2008年 ·[考试动态2008年上海市医师资格考试(考区
·[考试动态2008年医师资格考试(天津考区) ·[考试动态惠州市卫生局关于2008医师资格考
·[考试动态无锡市关于2008年医师资格考试网 ·[考试动态关于珠海市2008年医师资格考试的
·[考试动态韶关市关于2008年医师资格考试网 ·[考试动态深圳市关于2008年医师资格考试深
·[考试动态杭州市卫生局关于2008年医师资格 ·[考试动态丽水市关于2008年医师资格考试报
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·大连人事局:大连市公务员报考咨询电话公布
·大连人事局:大连市公务员报考咨询电话公布
·2008年7月份全国公务员面试真题
·北京师范大学2008年考研复试分数线公布
·清华大学2008年考研复试分数线公布
·中国人民大学2008年考研复试分数线公布
·北京大学2008年考研复试分数线公布
·教育部:2006年硕士研究生考试复试最低分数线
·2007年全国硕士研究生入学考试复试最低分数线
·2008年全国硕士生入学考试初试合格线确定
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号