Python快速入门-字符编码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符编码格式

计算机中显示的文字都需要编码格式的支持,否则你只能看到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的字符引用

相关文档
最新文档