【JAVA IO】_字符编码笔记
本章目标:
了解常用的几种编码
掌握乱码的产生原因
3、具体内容
编码:在计算机世界里,任何的文字都是以指定的编码方式存在的,在java程序开发中最常见的是以下几种编码:ISO8859-1 、GBK/GB2312、unicode、UTF
iso8859-1编码属于单字节编码,最多只能表示0~255的字符范围,主要在英文上应用。
GBK/GB2312:中文的国际编码,专门用来表示汉字,是双字节编码。
unicode:java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码。但此编码不兼容iso8859-1编码。
UTF:由于unicode不支持iso8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了utf编码,utf编码兼容了iso8859-1编码,同时也可以用来表示所有的语言字符,不过utf编码是不定长编码,第一个字符长度1-6个字节不等,一般中文网页中使用此编码,因为这样可以节省空间。
得到本机的编码显示
可以使用String类转换字符的编码。
本章目标:
了解常用的几种编码
掌握乱码的产生原因
3、具体内容
编码:在计算机世界里,任何的文字都是以指定的编码方式存在的,在java程序开发中最常见的是以下几种编码:ISO8859-1 、GBK/GB2312、unicode、UTF
iso8859-1编码属于单字节编码,最多只能表示0~255的字符范围,主要在英文上应用。
GBK/GB2312:中文的国际编码,专门用来表示汉字,是双字节编码。
unicode:java中就是使用此编码方式,也是最标准的一种编码,是使用16进制表示的编码。但此编码不兼容iso8859-1编码。
UTF:由于unicode不支持iso8859-1编码,而且容易占用更多的空间,而且对于英文字母也需要使用两个字节编码,这样使用unicode不便于传输和存储,因此产生了utf编码,utf编码兼容了iso8859-1编码,同时也可以用来表示所有的语言字符,不过utf编码是不定长编码,第一个字符长度1-6个字节不等,一般中文网页中使用此编码,因为这样可以节省空间。
得到本机的编码显示
public class CharSetDemo01{
public static void main(String args[]){
System.out.println("系统默认编码:"+System.getProperty("file.encoding")); //获取当前系统编码
}
}
可以使用String类转换字符的编码。
import java.io.OutputStream ;
import java.io.FileOutputStream ;
import java.io.File ;
public class CharSetDemo02{
public static void main(String args[]) throws Exception {
File f = new File("D:" + File.separator + "test.txt") ; // 实例化File类
OutputStream out = new FileOutputStream(f) ; // 实例化输出流
byte b[] = "中国,你好!".getBytes("ISO8859-1") ; // 转码操作
out.write(b) ; // 保存
out.close() ; // 关闭
}
};