编码
什么是字符编码?
人类字符与计算机机中的二进制对应关系
为什么要有字符编码
因为计算机时通电工作的,它只能识别高低电频(俗称二进制),计算机只能识别二进制,不能识别人类字符,但是人类只能识别人类字符,所以,人类要把东西存储到硬盘时,硬盘只能存储二进制,所以,人类就写了一张表,把不同的字符用不同组合的二进制关联起来(最早的编码表ASII表)。计算机的运行首先要先从硬盘中,读取内容,加载到内存中,然后cpu执行
百花齐放
ASCII
最开始计算机从美国诞生,所以美国人,就写了一张表,只能识别英文字符,并用8bit位来表示,预留了一位。
规定8Bit=1Byte
gbk
计算机传入中国,英文字符阻挡了计算机的普及,所以中国人也写了一张表,只能识别英文和中文字符,并用16Bit表示
shifit-JIs
计算机出了日本,日本也造了一张表....只能是识别,英文和日文字符,
.......好多国家都造了一张表,标准不统一,计算机交流复杂
unicode
这张表上把全球所有字符,都写了一个对应关系,只要有这张表,任何国家语言都可以二进制数表示,16Bit对应一个字符
乱码问题
存的时候乱了:采用的字符编码表无法识别输入的字,存的时候就已经乱了,是无法补救的,取的时候一定也乱了
解决方法:存入硬盘的编码格式应该用utf-8格式
存的时候没有乱码:采用的字符编码表可以识别输入的字符,但是取的时候乱码了:采用的字符编码表与当初存的时候用的不是同一张表
解决方法:存的时候用什么编码,取的时候一定要用同样的编码格式
与运行python程序有关的乱码问题
保证运行python程序的前两个阶段不乱码
在python文件的开头加一行:#coding:文件存的时候用的编码格式