Python必须掌握的200道面试题

基础笔试题

基础算法题

首页 > Python必须掌握的200道面试题 > 基础笔试题 > 1.19节:如何理解字符集与字符编码?

1.19节:如何理解字符集与字符编码?

薯条老师 2020-08-06 14:31:40 234878 0

编辑 收藏

教程引言:

荟萃经典的Python面试题,包括但不限于基础知识,高阶知识,算法,以及开放性回答等必考的面试题。

如何理解字符集与字符编码?

字符集与字符编码的概念其实很简单,没这么复杂。字符集,顾名思义,就是一个字符的集合,比如将中国的所有汉字作为一个字符集,将所有拉丁字母作为一个字符集。而字符编码是指将字符集里面的字符用一个唯一的数字编码来表示。为什么需要用数字编码来表示一个字符呢?因为计算机只能处理二进制。我们如果需要让计算机处理字符,那么必须将它转换为二进制。举个简单的例子,将字符"我"用二进制00来进行表示,将字符"爱"用二进制01来进行表示,将字符"你"用二进制10来进行表示:

字符字符编码
00
01
10

Unicode编码

Python3中的字符串采用Unicode进行编码。Unicode既是一种字符集,也是一种编码规范。Unicode字符集囊括了ASCII字符,汉字,希腊字母、俄文字母等世界各国,各地区的文字字符。Unicode编码通常采用固定的两个字节来对字符进行编码,这种固定编码的方式是有局限的,比如ASCII字符只需要使用一个字节,使用两个字节来进行编码就带来了存储空间的浪费。为优化存储空间,以及提升对unicode字符的处理性能,在Unicode编码的基础上,又应运而生了UTF-8编码,UTF-16编码,UTF-32等编码,这几类都是变长编码。在UTF-8编码中,ASCII字符仍然使用1个字节来进行编码和存储,其它字符至少使用2个字节来进行编码和存储。

在Python中通过ord函数可以获取某一个字符的十进制编码:

>>> ord('我')
25105
>>> ord('爱')
29233
>>> ord('你')
20320

通过chr函数可以将字符的数字编码转换为特定的字符:

>>> chr(25105)
'我'
>>> ord(29233)
'爱'
>>> ord(20320)
'你'

关注微信公众号:薯条编程,公众号后台回复"Python资料",免费领取Python电子书,以及学习Python视频课程。

小班授课,薯条老师一对一教学,火热报名中,点击了解线下就业培训。


欢迎 发表评论: