字符编码

字符编码:字符有很多种比如说不同的语言就包含很多字符,比如说汉字,字母,数字。而要在计算机中存储,必须转化成二进制进行存储,为编码;从硬盘中读出数据需要解码;

  1. ASCII码表(二进制编码,英文编码,不包含中文等字符)
  2. gbk 16位 中文加英文 (也就是 gb2312)
  3. Shift_JIS 日文加英文
  4. Euc-kr 韩文加英文
  5. Unicode 万国码 32 位
    16位一个中文字符,生僻字用4个字节,或者8个字节
  6. utf-8
    英文 一个字节,中文三个字节
    对Unicode的优化

内存固定使用 Unicode ,我们可以改变的是存入硬盘的采用格式,比如说gbk,utf-8
文本文件存取乱码:
存乱了:编码格式一定要设置合适,再存入,通常 'utf-8'
取乱了:说明你读文件的编码格式不对,文件以什么编码格式存,就应该用什么方式取。

python3 默认读文件,编码方式:utf-8
Python2 默认读文件,编码方式:ASCII

这样可能出现乱码,因为Python文件存的时候编码可能不同,所以要指定文件头

在Python文件首行写:(文件头,不是注释)

#coding:gbk
读文件的编码方式

python3的str类型默认存成Unicode,所以不会存在乱码
python2的str类型:
x = u'上'

res = x.encode('gbk') # unicode > gbk 编码
res.decode('gbk') # gbk > unicode 解码

原文地址:https://www.cnblogs.com/pythonwl/p/12482064.html