`
xvm03
  • 浏览: 144343 次
  • 来自: ...
社区版块
存档分类
最新评论

JDK 1.4中存在一个有关编--ZT

阅读更多
在JDK 1.4中存在一个有关编码的问题。简要描述如下: 通过参数-Dfile.encoding="charset"设定特定的字符集,但是并不会被当作Reader或者Writer的默认字符集使用。这个问题,有时候会引起隐藏较深的乱码问题。JDK 1.5和1.6中此问题已经不存在,所以,如果遇到在同样默认字符集系统上面运行,基于JDK 1.5正常,基于JDK 1.4则出现乱码问题的时候,注意一下是否由于此问题引起。 (原来JDK 1.4的这个bug在脑子中特别清晰,最近忘了,头两天遇到了,搞了半天~_~。发出来吧,也给大家提个醒) 测试程序如下: 1 public static void main(String[] args) { 2 try { 3 File file = new File("D:/text.txt"); 4 file.createNewFile(); 5 InputStreamReader reader = new InputStreamReader(new FileInputStream(file)); 6 OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file)); 7 System.out.println(reader.getEncoding()); 8 System.out.println(writer.getEncoding()); 9 } catch (IOException e) { 10 e.printStackTrace(); 11 } 12 } 【执行环境】 Windows XP中文,默认系统字符集是GBK 启动参数设置:-Dfile.encoding=utf-8 在JDK 1.4.2版本上输出如下: GBK GBK 在JDK 1.5.0_09版本上输出如下: UTF8 UTF8 由以上测试结果可以看出,在JDK 1.4上面,通过参数-Dfile.encoding="charset"设定特定的字符集,但是并不会被当作Reader或者Writer的默认字符集使用在JDK 1.4版本上面,此可能引起很多问题,例如read的部分是由于某开源库完成,则内部实现可能强制采用了-Dfile.encoding的配置;输出由我们自己完成,则默认的writer并不会默认采用-Dfile.encoding的设置,这样解码和编码用的字符集就不一致,可能就会引起乱码问题。 简而言之,在JDK 1.4上开发,在利用字符流编解码需要依赖-Dfile.encoding设置的时候,要注意此问题。 附加说明: 1、可以对InputStreamReader和OutputStreamWriter两个wrapper设定明确的编辑码字符集 2、如果像和当前系统的-Dfile.encoding设置保持绝对一直,可以将System.getProperty("file.encoding")传入InputStreamReader和OutputStreamWriter
分享到:
评论

相关推荐

    JDK1.4老版本

    在Java发展历程中,JDK 1.4是一个重要的里程碑,它为后来的Java版本奠定了基础。这个版本发布于2003年,是Java SE(标准版)的一个关键迭代,引入了许多新特性并优化了现有功能。下面我们将详细探讨JDK 1.4的主要...

    旧版本JDK JDK1.4

    1. **异常链**:在JDK 1.4中,引入了异常链机制,允许一个异常捕获另一个异常,并将它们链接在一起,方便开发者跟踪错误源。 2. **正则表达式**:通过`java.util.regex`包,Java 1.4引入了全面的正则表达式支持,极...

    jdk1.4 json包 6个全

    标题提到的"jdk1.4 json包 6个全"指的是为Java 1.4版本提供的一个完整的JSON处理库,包含了六个相关的jar文件。 1. **commons-collections.jar**:这是Apache Commons Collections库,提供了大量的集合框架扩展,...

    JDK1.4老版本.zip

    JDK1.4,全称Java Development Kit Version 1.4,是Java编程语言历史上的一个重要版本,由Sun Microsystems(现已被Oracle公司收购)于2002年2月13日正式发布。这个版本在Java平台上引入了许多关键性的改进和新特性...

    jdk1.4-jdk1.4

    jdk1.4非安装版,可直接在MyEclipse等IDE工具导入jdk相应的版本。希望对你们有用处。

    jdk 1.4 旧版 windows zip压缩包

    JDK 1.4是Java历史上的一个重要版本,发布于2004年,它是Java 2平台标准版(J2SE)的一部分。在这个版本中,Java引入了许多新的特性和改进,对于Windows操作系统用户来说,这个版本的JDK在当时的软件开发环境中扮演...

    jdk1.4绿色免安装版

    总结,JDK 1.4绿色免安装版是一个便捷的开发工具,尽管已经有些许年代,但它仍能在旧的项目或特定环境中发挥价值,特别是对于需要兼容旧代码或研究历史版本特性的开发者来说,是一个不可或缺的资源。同时,其引入的...

    java 开发工具 jdk 1.4 免安装版

    总的来说,JDK 1.4免安装版是Java开发者的一个便利工具,特别是对于需要在旧项目或特定环境中使用JDK 1.4的开发者,它提供了一个快速部署和使用的途径。尽管当前版本已经较为陈旧,但了解其特性和改进对于理解Java的...

    jdk1.4源代码

    JDK1.4是Java开发工具包的一个重要版本,它在Java发展历程中扮演了关键角色。这个版本发布于2002年,带来了许多新的特性和改进,为后续版本奠定了基础。在此源代码中,我们可以深入理解Java语言的实现细节,以及Java...

    JDK1.4中文开发手册

    JDK 1.4虽然并未正式引入泛型,但它是泛型在Java 5中全面引入的一个前兆。泛型允许程序员在编译时检查类型安全,并且所有的强制类型转换都是自动和隐式的,提高了代码的重用性。 **2. 正则表达式(java.util.regex...

    jdk1.4 linux版本安装包资源 下载

    之前好些人找我要1.4linux版本,现在分享出来

    axis2 jdk1.4用jar

    在这个场景中,可能是指一个兼容JDK 1.4的Axis2构建,因为JDK 1.4是较早的Java版本,而Axis2通常需要更新的JDK版本。 Apache Axis2是Apache SOAP(简单对象访问协议)项目的下一代,它提供了一个高性能、灵活且模块...

    jdk1.4安装文件

    JDK 1.4中引入了`java.util.logging`包,提供了一个轻量级的日志框架,让开发者能够灵活地控制应用程序的日志输出。 9. **调试器改进** `jdb`(Java调试器)得到了显著提升,支持更强大的断点、监视点和数据查看...

    jdk1.4绿色版本

    JDK 1.4,也常被称为 JDK 4,是Java平台的一个重要版本,由Sun Microsystems在2002年发布。这个版本引入了许多关键特性,提升了Java语言的性能、稳定性和安全性,为后续的Java版本奠定了基础。"绿色版本"通常指的是...

    JDK1.4 JDK1.5

    在探讨如何在操作系统中同时安装了JDK1.4和JDK1.5的情况下更改环境变量等设置之前,我们先来了解一下JDK的基本概念及其版本更迭的重要性。 ### JDK简介 JDK(Java Development Kit)是Sun Microsystems为Java...

    poi-3.7-jdk1.4-20110417-rc1.jar

    poi3.7与jdk1.4兼容版本,已测试,可用

    Struts2 在JDK1.4下运行(J4)

    JDK1.4是Java的一个较早版本,其中不包含一些后来引入的重要特性,如泛型、枚举、注解和增强的for循环。这些特性在Struts2框架中被广泛使用,因此需要进行一些适配工作。 1. **泛型**:Struts2使用泛型来提供类型...

    poi-3.8-final-jdk1.4-20120520-rc1.jar

    poi-3.8-final-jdk1.4-20120520-rc1.jar

Global site tag (gtag.js) - Google Analytics