python 字符集utf-8|精简版(三分钟了解)
字符集
计算机只能处理数字(其实就是数字0和数字1),
如果要处理文本,就必须先把文本转换为数字才能处理。
最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),
所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),
0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。
ASCII码表使用7位二进制表示一个字符,它的区间范围时0~127,⼀共只能表示128个字符,仅能支持英语。
随着计算机科学的发展,西欧语言、希腊语、泰语、阿拉伯语、希伯来语等语言的字符也被添加到码表中,
形成了一个新的码表ISO8859-1(又被称为Latin1)码表。
ISO8859-1使用8位二进制表示一个字符串,完全兼容ASCII码表。
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
Unicode 是为了解决传统的字符编码方案的局限而产生的,
它为每种语言中的每个字符设定了统一并且唯一的二进制编码,
以满足跨语言、跨平台进行文本转换、处理的要求。
字符和编码相互转换
使用 chr 和 ord 方法,可以实现字符和编码之间的相互转换。
print(ord('a')) # 使用 ord 方法,可以获取一个字符对应的编码
print(chr(100)) # 使用 chr 方法,可以获取一个编码对应的字符
编码规则
使用 Unicode 为每种语言的每个字符都设定了唯一的二进制编码,但是它还是存在一定的问题,不够完美。
例如,汉字 “你” 转换成为一个字符结果是 0x4f60 ,转换成为二进制就是 01001111 01100000 ,此时
就有两个问题:1 1001111 01100000 到底是一个汉字 “你” ,还是两个 Latin1 字符?
2 如果Unicode进行了规定,每个字符都使用n个八位来表示,对于Latin1字符来说,又会浪费很多存储空间。为了解决这个问题,就出现了一些编码规则,按照一定的编码规则对Unicode数字进行计算,得出新的编码。
在中国常用的字符编码有 GBK , Big5 和 utf8 这三种编码规则。使用字符串的 encode 方法,可以将字符串按照指定的编码格式转换称为二进制;
使用 decode 方法,可以将一个二进制数据按照指定的编码格式转换成为字符串。
如
s1 = '你'.encode('utf8') # 将字符 你 按照 utf8 格式编码 成为二进制
print(type(s1)) # <class 'bytes'>
# 得到
<class 'bytes'>print(s1) # b'\xe4\xbd\xa0'
# 得到
b'\xe4\xbd\xa0's2 = s1.decode('utf8') # 将二进制 按照 utf8 格式解码 成为 字符串
print(s2)
# 得到
你s3 = '你'.encode('gbk') # 将字符 你 按照 gbk 格式转换 成为 二进制
print(s3) # b'\xc4\xe3'
# 得到
b'\xc4\xe3's4 = s3.decode('gbk') # 将 二进制 按照 gbk 格式解码 成为 字符
print(s4)
# 得到
你
计算里面只能识别 0 和 1
字符 编码 二进制的保存方式
A==> 65 == >
a==> 97 ==> 0110 0001 ==> 八位一个字节0000 0000 最小 00111 1111 最大 1271000 0000 1281111 1111 255
ASCII码表使用一个字节来表示一个字符 最多可以表示128 个(不使用最高位)
ISO-8859-1 使用了最高位 0-127 和ASCII码表完全兼容,最多能表示255个
Unicode编码 ==>·绝大部分国家的文字都有一个对应的编码
你 1001111 01100000
1.是一个汉字,还是两个Latin符?
2.加入规定所有字符都使用16位,2个字节来表示
00000000 01001111 ==>Latin
00000000 01100000 ==>Latin
GBK:国标扩,汉字占两个字节,简体中文
utf-8:统一编码,汉字占三个字节.
python 字符集utf-8|精简版(三分钟了解)相关推荐
- java和python的比较-如何对比Python和Java,只需三分钟告诉你!
原标题:如何对比Python和Java,只需三分钟告诉你! Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力 ...
- python 全部缩进一行_每天三分钟一起学python之(三)python的基本语法
每天三分钟,我们一起学python.在上一期PyCharm的安装及常用配置中,给大家介绍了PyCharm的安装方法和一些常用的配置.安装过PyCharm之后,我们就可以开始编写python程序了,今天 ...
- python面试文件操作_python基础-三分钟搞定面试官爱问的【文件操作】
一.使用python读写文本文件 使用Python来读或者写文本需要用到'open'这个关键字,它的作用是打开一个文件并创建一个文件对象. open语法结构: open(file, mode='r', ...
- python作用域(scope)(三分钟读懂)
作用域(scope) 作用域指的是变量生效的区域,在Python中一共有两种作用域 1.全局作用域 全局作用域在程序执行时创建,在程序执行结束时销毁 所有函数以外的区域都是全局作用域 在全局作用域中定 ...
- python中国最好大学排名_三分钟实现爬取中国前20大学排名
一.中国大学排名爬虫案例的步骤如下: 步骤1:从网络上获取大学排名网页内容 getHTMLText() 步骤2:提取网页内容中信息到合适的数据结构 fillUnivList() 步骤3:利用数据结构展 ...
- python程序元素分析_荐 小学生三分钟学会Python程序语法元素分析~总结笔记
Python程序语法元素分析 前言:朕今年在读大二,苦逼学python,写博客为了更好的总结知识,每次写博客可能要花费几个小时,或者更多时间来总结知识,如果你觉得文章对你有帮助,可以在文章末尾点赞和评 ...
- python怎么快速打括号_三分钟,让你弄清楚Python中函数的括号使用
一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大困惑. 执行结果: 根据结果来分析: 1. x = aaa aaa是一个类名,后面没加括号,打印结 ...
- python爬虫之bs4库_三分钟搞定bs4库的解析器
The Dormouse's story Once upon a time there were three little sisters; and their names were Elsie, L ...
- 十分钟教会你原生JS压缩图片,极其精简版
十分钟教会你原生JS压缩图片,极其精简版 原文链接:https://blog.csdn.net/yasha97/article/details/83629510 (一)实现思路 先通过input标签获 ...
- 小猪的Python学习之旅 —— 10.三分钟上手Requests库
小猪的Python学习之旅 -- 10.三分钟上手Requests库 标签:Python 一句话概括本文: 本节讲解Requests库的常见使用,以及一个实战项目: 扒取某一篇微信文章里所有的图片,视 ...
最新文章
- 第3章 View的事件体系
- Build a react project step by step
- 让你的系统“坚挺不倒”的最后一个大招——「降级」
- 学好python工资一般多少钱-Python工资一般是多少 看完吓你一跳
- php递归函数return会出现无法正确返回想要值的情况
- windows下搭建基于nginx的rtmp服务器
- 一周学会Mootools 1.4中文教程:(4)类型
- 记录水电开发的心理【2】
- 对象tostring后怎么转成对象_和女生相亲后怎么联系对方?和相亲对象该如何聊天...
- UITransitionView and UILayoutContainerView
- Python bcrypt 加密验证密码
- 实现JPA的懒加载和无外键
- Flutter 本地小说阅读器
- 为什么我们要写单元测试用例?
- 互联网公司的技术体系
- Android APK反编译教程(带工具)
- 关于PWM脉冲宽度调制的点滴总结
- 帝国 html5免费模板,帝国CMS模板
- 南京大学计算机2021年考研,2021年南京大学计算机科学与技术(081200)考研专业目录_硕士研究生考试范围 - 学途吧...
- CreateFont()函数的MSDN翻译
热门文章
- noip2019集训测试赛(七)
- Spring注解@ConfigurationPropertie
- css多行文本溢出显示省略号(…)
- Bootstrap框架(二)
- fastscript增加三方控件
- 2010中小网站运营报告:社区论坛网站后来居上
- WinAPI: 钩子回调函数之 CallWndProcRetProc
- matlab将常值函数转换为变量,MATLAB与科学计算期末复习题题库15.11.12
- case when..then
- 201501006-构建之法:现代软件工程-阅读笔记