一个char(字符)在内存中占2个字节(16位无符号编码Unicode),
但是经过GBK编码后,英文占1个字节,中文占2个字节,
经过UTF8(国际码)编码后,英文占1个字节,中文占3个字节。
package fileLength;
import java.io.File;
public class FileCodeDemo {
public static void main(String[] args) {
File file=new File("a.txt");
long length = file.length();
System.out.println(length);
}
}
运行结果
6
5
互联网或者文件都是按照byte(1个字节=8位)进行传输的。
字符数据在互联网(文件)传输的时候必须拆分为byte(字节)进行传输。
将字符数据拆分为byte(字节)数据的过程称为:编码
将byte(字节)数据重新合并为字符数据的过程称为:解码
常见编码
UTF16-BE:将字符char从中间拆分为两段,两个byte(字节),只能支持0-65535个字符,英文浪费空间。
GBK(中文编码标准),1-2字节变长(数小,占用空间少,数大,占用空间大)编码,支持字符2万+
UTF-8(国际编码)采用变长编码(1-4字节),支持100万+字符,按照字符数值的大小进行编码,英文采用1个字节编码
国际化应该采用UTF-8编码
网友评论