Unicode与UTF-8编码的关系

        在Unicode出现之前,美国人发明使用一个字节表示字符的ASCII码,西欧人同样用一个字节表示字符的ISO编码,之后汉字的使用,一个字节根本无法表示所有汉字,于是采用两个字节表示字符的GBK码,并且兼容了ASCII码。之后Unicode一统江湖,采用三个字节表示一百多万个字符,每个区间对应着一种语言编码。但是在传输中都采用三个字节表示字符会浪费内存空间,于是在此基础上,出现了UTF-8,UTF-16等编码,其中UTF-8最常用。

        UTF-8为了节省资源,采用变长编码,编码长度从1字节到6字节不等,在文件中存储采用UTF-8编码,节省空间;但是如果在内存中处理字符,如果长度不等则难以处理,所以在内存中存储字符时仍然采用Unicode编码。

        从文件中读取UTF-8的字符到内存时,会自动转换成Unicode编码,内存中字符保存到文件时,会自动转换成UTF-8编码。

        Java中char类型采用UTF-16编码。

你可能感兴趣的:(Unicode与UTF-8编码的关系)