java 中文解决大全 Abstract:本文深入分析了Java 程序设计中Java 编译器对java 源文件和JVM 对 class 类文件的编码/解码过程,通过此过程的解析透视出了Java 编程中中文问题产生的根本原因,最后给出了建议的最优化的解决Java 中文问题的方法
中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理
随着计算机的发展,为了适应世界其它民族的语言(当然包括我们的汉字),人们提出了UNICODE 编码,它采用双字节编码,兼容英文字符和其它民族的双字节字符编码,所以,目前,大多数国际性的软件内部均采用UNICODE 编码,在软件运行时,它获得本地支持系统(多数时间是操作系统)默认支持的编码格式,然后再将软件内部的UNICODE 转化为本地系统默认支持的格式显示出来
Java 的 JDK 和 JVM 即是如此,我这里说的JDK 是指国际版的JDK, 我们大多数程序员使用的是国际化的JDK 版本,以下所有的JDK 均指国际化的JDK 版本
我们的汉字是双字节编码语言,为了能让计算机处理中文,我们自己制定的gb2312、 GBK、 GBK2K 等标准以适应计算机处理的需求
所以,大部分的操作系统为了适应我们处理中文的需求,均定制有中文操作系统,它们采用的是GBK,GB2312 编码格式以正确显示我们的汉字
如:中文Win2K 默认采用的是GBK 编码显示,在中文WIN2k 中保存文件时默认采用的保存文件的编码格式也是GBK 的, 即, 所有在中文WIN2K 中保存的文件它的内部编码默认均采用GBK 编码,注意:GBK 是在GB2312 基础上扩充来的
由于Java 语言内部采用UNICODE 编码,所以在JAVA 程序运行时,就存在着一个从UNICODE 编码和对应的