《Java程序设计:031216_字符编码(no)》由会员分享,可在线阅读,更多相关《Java程序设计:031216_字符编码(no)(7页珍藏版)》请在金锄头文库上搜索。
1、 MLDN 软件教学研件教学研发部部JAVA 应用开发详解应用开发详解JAVA IO 字符编码本章目标了解常用的几种编码掌握乱码的产生原因编码在计算机世界里,任何的文字都是以指定的编码方式存在的,在JAVA程序的开发中最常见的是以下的几种编码:ISO8859-1、GBK/GB2312、unicode、UTF。 iso8859-1编码属于单字节编码,最多只能表示编码属于单字节编码,最多只能表示0255的字符范围,的字符范围,主要在英文上应用主要在英文上应用 GBK/GB2312:中文的国标编码,专门用来表示汉字,是双字节编:中文的国标编码,专门用来表示汉字,是双字节编码。码。unicode:使用
2、:使用16进制表示的编码进制表示的编码,但此编码不兼容但此编码不兼容iso8859-1编码。编码。 UTF:由于:由于unicode不支持不支持iso8859-1编码,而且容易占用更多的空编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了不便于传输和存储,因此产生了utf编码,编码,utf编码兼容了编码兼容了iso8859-1编编码,同时也可以用来表示所有的语言字符,不过码,同时也可以用来表示所有的语言字符,不过utf编码是不定长编编码是不定长编码,每一个字符的长度从码,每
3、一个字符的长度从16个字节不等,一般在中文网页中使用此个字节不等,一般在中文网页中使用此编码,因为这样可以节省空间。编码,因为这样可以节省空间。 乱码的产生在程序中如果处理不好字符的编码,则就有可能出现乱码问题,如果现在本机的默认编码是GBK,但在程序中使用了ISO8859-1编码,则就会出现字符的乱码问题,就好比两个人交谈,一个人说的是中文,另外一个人说的是其他语言,如果语言不同,则肯定无法沟通 得到本机的编码显示 使用System类可以取得与系统有关的信息,那么直接使用此类就可以找到系统的默认编码,使用如下方法: public static Properties getProperty()
4、使用此方法得到JVM的默认编码 package org.lxh.demo12.charsetdemo;public class CharSetDemo01 public static void main(String args) System.out.println(系统默认编码: + System.getProperty(file.encoding); / 获取当前系统编码乱码产生 package org.lxh.demo12.charsetdemo;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;public class CharSetDemo02 public static void main(String args) throws Exception File f = new File(D: + File.separator + test.txt);OutputStream out = new FileOutputStream(f);/ 实例化输出流byte b = 中国,你好!.getBytes(ISO8859-1);/ 指定ISO8859-1编码out.write(b) ;/ 保存转码之后的数据out.close();/ 关闭输出流