- Ascii码(American Standard Code for Information Interchange,美国信息互换标准代码):
最初计算机只在美国使用时,只用8位的字节来组合出256(2的8次方)种不同的状态,把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,
- 拓展字符集:世界各地的都开始使用计算机,一直把序号编到了最后一个状态255。从128到255这一页的字符集被称"扩展字符集"。
- GB2312:
GB2312 是对 ASCII 的中文扩展。当计算机传入中国后,规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。这种方案叫做GB2312。
- GBK:
后来GB2312方案的汉字不够用了,干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
- GB18030:
后来又加入了加入了几千个少数民族的字,拓展成为GB18030
- UNICODE:但全世界各种编码方式无法通行,于是出现了一种无视各种地区编码的世界统一的编码方式~Unicode。在Unicode中,一个字符就是两个字节。规定必须用两个字节,也就是16位来统一表示所有的字符,对于ascii里的那些“半角”字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。
- UTF-8:
前面介绍的都是字符集,而UTF-8,UTF-16则是一种编码规则。因为Unicode字符集都是用两个字节来存储的,所以在传输信息的过程中对资源浪费很大,就像原来Ascii码中的字符只需要一个字节来传递。于是出现了UTF-8这种变长的编码规则。 因此UTF-8是基于Unicode的一种编码规则,因此现在最常用的便是UTF-8编码方式。
补充一点: 1.将字符转换为字节的方式称为编码 2.将字节转换为字符的方式称为解码
接下来介绍用pycharm来写爬虫时遇到的乱码问题:
![首先打开file中的setting 首先打开file中的setting](https://www.codeprj.com/image/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTkyMDM3MC0xNzU0ZDEyNmVmNWIxNjg5LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA==.png)
首先打开file中的setting 再找到Editor中的File Encodings
![再找到Editor中的File Encodings 再找到Editor中的File Encodings](https://www.codeprj.com/image/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTkyMDM3MC0xOGFjZmU5ZjNhZTg0MGQ4LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA==.png) 将其中的GlobalEncoding和Project Encoding改为UTF-8即可。 为了以防万一,也可以将文件的编码方式也改为utf-8
![pycharm右下角可以更改文件的编码方式 pycharm右下角可以更改文件的编码方式](https://www.codeprj.com/image/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTkyMDM3MC0yYjVkZDJhYjFmOTNjMDAwLnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA==.png)
pycharm右下角可以更改文件的编码方式 或者在setting中将文件编码改为utf-8
![或者在setting中将文件编码改为utf-8 或者在setting中将文件编码改为utf-8](https://www.codeprj.com/image/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTkyMDM3MC02NTFmYWZjZTczOWYwNzE4LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA==.png)
|