注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Java >> J2EE >> J2ee核心 >> Java正文

关于J2EE中的乱码解决

文章来源:blogjava.net 作者:佚名 更新时间:2008-8-23 14:38:18 【 】 【加入收藏

    在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不仅指简体中文,还包含了繁体中文等中文。)

    以上内容参考李兴华老师教程编写,并引用了其列程,在此感谢李兴华老师制作的视频,给了我很大帮助(本人无意作广告,此举真诚感谢李兴华老师的视频,另外,也向初学JAVA的朋友推荐他的视频,还有那些准备上JAVA培训班的同学,希望你们在上培训班之前好好看看李老师的教程,本人是在一家知名培训机构里接受过培训的。)

  • 上一篇Java:

  • 下一篇Java:
  • 最 新 热 门
     Flash、HTML、Ajax 谁将赢得Web应用之战
     超越XML和JSON:YAML,Java开发人员的新选择
     优秀Java程序员必须了解的GC工作原理
     Java 6 RowSet 使用完全剖析
     pureQuery带注释的方法风格简介
     面向Java开发人员的Scala指南: 实现继承
     Java 6中的性能优化
     Java实现Windows的dir命令
     Java标准类库提供的容器总结
     在Tomcat上开发Web应用如何保证兼容性
    最 新 推 荐
     对J2EE应用系统分层设计的思考
     Apusic Operamasks的资源注入
     关于J2EE中的乱码解决
     排序链树搜索算法在GIS POI关键字搜索中的应…
     Java异常处理:如何避免重复打印异常
     JLDAP 连接池的创建及测试程序
     Java Persistence API (JPA) 的陷阱
     通过JMX来获得web service的信息
     如何才算掌握了Java EE
     分散关注的编程方法 AOP
    相 关 文 章

    关于tomcat快速启动及自动重启的方法与脚本
    关于iBatis和Spring的整合
    J2EE综合:Struts上传多个文件的例子
    Java中关于XML的API惊鸿一瞥
    J2ME(JSR75)组件之文件选择器
    J2me中低级界面字体处理
    J2ME手机游戏:Canvas类基本绘图实例
    J2ME手机游戏:Canvas类基本绘图应用
    J2ME手机游戏:TimerTask与Timer类的应用
    J2ME手机游戏:运行实现Runnable接口的类

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用