所有的乱码实质上都是因为字符集选择错误造成的。
流在读取时,编码使用不当也会乱码。
常见的字符集由ASCII、GBK、UTF-8、GB2312等等。
不同字符集的区别在于:
ASCII (American Standard Code for Information Interchange,美国信息交换标
准代码) 是一套主要用于现代美国英语的字符集(这也是 ASCII 字符集的局限性所
在)。
为什么ASCII字符集没有考虑到中文等其它字符呢?因为计算机是美国人发明的,当时,计算机还处于雏形时代,在其他国家还没有大规模的使用,所以,美国发明ASCII字符集时没有考虑兼容其他国家的语言。
ASCII码至今为止共定义了128个字符,其中有33个控制字符(回车,删除等)无法显示。
一个ASCII码长度为一个字节,也就是8个bit,比如"a"对应的ASCII码为"01100001",最高位0仅仅作为校验位,其他七位由0和1组成,因此,ASCII字符集可以定义128个字符。
由于,ASCII码可以表示的字符实在太少了,人们对其进行了扩展,得到了ASCII 扩展字符集 。ASCII 扩展字符集使用 8 位(bits)表示一个字符,所以,ASCII扩展字符集可以定义 256(2^8)个字符。