您现在所在的位置:首页 >关于奇酷 > 行业动态 > python快速入门-字符编码

python快速入门-字符编码

来源:奇酷教育 发表于:

python快速入门-字符编码。

  计算机中显示的文字都需要编码格式的支持,否则你只能看到0、1组成的神秘序列
 
  什么是编码:
 
  计算机出生之初仅仅为了计算,所以只有数字0、1
 
  后来,计算机有了更多的诉求,希望能记录更多的文字信息,但是计算机还是只认识0、1怎么办?
 
  有人出了主意:让数字0代表一个字,数字1代表一个字以此类推:
 
  0--文字1
 
  1--文字2
 
  2--文字3
 
  3--文字4
 
  4--文字5
 
  ......
 
  于是这样的对照表就称为编码格式
 
  编码的变迁史:
 
  早期计算机表示的数字很少:8位机时代 0-255 所以只能表示256个文字 ascii编码格式/iso8859-1
 
  chr(数字)可以将数字变为码表中的文字
 
  print(chr(97))
 
  计算机迅速传入各个国家:中国出现了gbk(国标码) gb2312(简体码) big5(繁体码)
 
  乱码时代:各个国家都有各自的编码格式,那么计算机在传输后,就会乱码:
 
  例:
 
  可以使用内置函数ord(‘文字’)获取文字的底层数据:
 
  print(ord('中'))
 
  “中”:底层数字是20013
 
  但是可能韩文编码下可能未对20013进行映射,那么就会显示? 这就是乱码!
 
  大一统时代:unicode
 
  unicode的出现让乱码乱象得到控制
 
  unicode码将几乎所有文字都约束在它的编码之下,世界使用一种码,自然没有乱码
 
  中文范围:"\u4e00"--"\u9fa5"
 
  print("\u4e2d")
 
  现状:utf-8
 
  unicode作为国际统一码,也叫双字节编码,不利于网络传输,网络大多流转英文字符居多
 
  so就出现了变种的unicode:utf-8:英文单字节,其他文字三字节。
 
  为了世界不再乱码,请用utf-8!!!
 
  组码:会得到一个bytes序列
 
  字符串.encode(encoding='UTF-8', errors='strict')
 
  解码:会得到一个按编码解析的字符串
 
  字节序列.decode(encoding='UTF-8', errors='strict')
 
  如果设置为strict,代表遇到非法字符时抛出异常; 
 
  如果设置为ignore,则会忽略非法字符; 
 
  如果设置为replace,则会用?取代非法字符; 
 
  如果设置为xmlcharrefreplace,则使用XML的字符引用