看完本篇博客,会解决你对编码的所有疑问。
首先要搞清楚以下几个概念:
1.字符。字符是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等,它是一个信息单位。
2.字符集。字符集是多个字符的集合。字符集种类较多,每个字符集包含的字符个数不同。常见的字符集有:ASCII字符集,GB2312字符集,BIG5字符集,GB18030字符集,Unicode字符集等。在字符集中,有一个码表的存在,每一个字符在各自的字符集中对应着一个唯一的码。但是同一个字符在不同字符集中的码是不一样的。比如字符“中”在Unicode和GB18030中就分别对应着不同的码(20013和54992)。
3.字符编码。计算机要准确的处理各种字符集中的字符,就需要对字符进行编码(即用特定的二进制数值对应该字符或者说将字符在字符集中的对应位置化为二进制),称为字符编码。字符集与字符编码一一对应。(Unicode除外,它有多种编码实现UTF-8,UTF-16,UTF-32等)
4.汉字内码。指计算机汉字系统中使用的二进制字符编码,是沟通输入、输出与系统平台之间的交换码,通过内码可以达到通用和高效率传输文本的目的。
5.内码。char或String在内存里使用的编码方式。
6.外码。除了内码都可以认为是外码。(包括class文件的编码)
在这里做下小结:字符相当于我们汉语词典中的汉字,字符编码相当于汉语词典中的拼音(或者某一页,第几个字),字符集相当于汉语词典。
不