字符集详解

一、为什么乱码?

所有的乱码实质上都是因为字符集选择错误造成的。

流在读取时,编码使用不当也会乱码。

二、什么是字符集?

  • 字符是各种文字和符号的统称,包括各个国家的文字,标点符号,表情等等。
  • 字符集就是一系列字符的集合。
  • 字符集的种类较多,每个字符集所表示的字符范围通常不同,比如有些字符集无法表示汉字。
  • 计算机只能存储二进制的数据。

三、有哪些字符集? 

常见的字符集由ASCII、GBK、UTF-8、GB2312等等。

不同字符集的区别在于:

  • 字符范围不同
  • 编码方式不同

1.ASCII 

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)个字符。

你可能感兴趣的:(java,开发语言,数据结构,python,php)