首页 > 编程语言 >Python中的字符编码

Python中的字符编码

时间:2023-11-10 22:13:46浏览次数:43  
标签:编码 字节 字符 Python utf8 unicode ASCII

一、发展史

 1、前提

字符编码只跟文本数据和字符串有关系,它跟视频文件、音频文件等无关

2、计算机只能识别二进制数,详解如下

二进制数即由01组成的数字,例如010010101010。计算机是基于电工作的,电的特性即高低电平, 人类从逻辑层面将高电平对应为数字1,低电平对应为数字0,这直接决定了计算机可以识别的是由01组成的数字

3、发展史

一家独大

计算机最开始是有美国人发明的,他们肯定是想让计算机识别英文字符

ASCII码表:它的内部记录了英文字符和数字之间的关系

ASCII码表内置使用一个字节代表一个字符

# 一个字节等于8位

0000001

2 ** 7 == 128

2 ** 8 == 256

在当初的时候,127种情况足够秒杀当时遇到的所有字符

后面使用8位代表一个字节是为了后续增加字符

需要记忆的是:

A-Z:65-   往后加一 a-z:97-    往后加一 0-9:48-    往后加一

字符串的比较:是按照ASCII码表的十进制数进行比较的
print('hello' > 'world')

群雄割据

中国人要想使用计算机,就自己开发了一套编码表:

GBK码表:国标码,它的内部记录了英文、中文和数字之间的对应关系

----->129   ------>130   2 ** 16 == 65536

GBK码表使用1个字节保存英文字符,使用2个字节保存中文字符

日本人要想使用计算机,也得发明一套属于自己的编码表

Shift_JIS表

韩国人也要有一套属于自己的编码表

Euc-kr表

一统天下

为了让世界上的所有国家之间能够彼此无障碍的交流,统一使用了编码

unicode(万国码)(在内存中,写文档时,还没保存的时候数据在内存中,依旧能识别中文,是因为内存中有unicode编码)

unicode统一使用两个字节保存字符或者更多字符

由于原来的英文字符是使用一个字节保存的,现在万国码使用了两个字节,所以就把资源浪费了一倍

utf8编码(unicode的优化版本)

utf8中 1个字节保存英文字符,3个字节保存中文字符

最终得出结论:以后在使用字符编码的时候就使用utf8 # 补充: utf-8、utf-16、utf-32...、utf8mb4(存表情) 

GBK和utf-8编码底层都基于ASCII,所以一个英文字母都是用一个字节表示

二、python中的操作

1、 python解释器代码的差异

在python2中,默认使用的编码是ASCII码

# **-coding:utf-8-** = u'你好' print s

python3中默认使用的是utf8编码

2、编码和解码
编码:是把其他字符串转为二进制的过程

str----->0101 str----->unicode----->0101001 ASCII---->GBK------>unicode----->utf8

解码:把二进制转为其他字符串的过程

= 'hello你好哈'

编码

res = s.encode('utf8') # print(res) # b'hello' # 二进制 binary bin() print(res) # b'hello\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x93\x88'

解码

res1 = res.decode('utf8'# gbk、utf8 print(res1) # hello你好哈   # 补充 s1 =b'hello123' # 只能是纯英文字符 s2='hello123'.encode('utf8')

标签:编码,字节,字符,Python,utf8,unicode,ASCII
From: https://www.cnblogs.com/Jessica-Jmm/p/17825193.html

相关文章

  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
    从表格中选择数据要从MySQL中的表格中选择数据,请使用"SELECT"语句:示例选择"customers"表格中的所有记录,并显示结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",datab......
  • Python的流程控制
    一、流程控制控制事物的执行流程1.顺序结构#自上而下依次执行,我们前面写的代码都是顺序执行的2.分支结构#根据不同的条件执行不同的分支3.循环结构#言外之意就是重复执行二、分支结构1、单分支if 条件:    条件成立之后要执行的代码块2、双分支if 条......
  • python执行字段串代码
    很多时候,我们会让用户自己写代码,然后保持,需要的时候执行,这个时候,保持的代码是字符串,怎么执行呢,这里简单介绍一下1.eval如果是单行语句或者表达式可以使用eval执行,如:eval("2+4+5")2.exec如果是多行的代码,可以使用exec执行(可以使用变量,也可以产生变量),如:lenth=10code=......
  • wxFormBuilder + python + wxWidget
    -------------#-*-coding:utf-8-*-#############################################################################PythoncodegeneratedwithwxFormBuilder(version3.10.1-0-g8feb16b3)##http://www.wxformbuilder.org/####PLEASEDO*NOT*EDITTHISFIL......
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
    从表格中选择数据要从MySQL中的表格中选择数据,请使用"SELECT"语句:示例选择"customers"表格中的所有记录,并显示结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",datab......
  • Python七种运算符及其优先级
    例:a=10,b=201、算术运算符运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返......
  • python3: dlt - 数据结构
    python3:dlt-数据结构    一、程序:1[wit@fedoranull]$cattest.py2#!/usr/bin/envpython334567#testthisscript8defmsg():9print("\nhello,python3!\n")101112#runningmsg()13#msg()1415......
  • python计算代码运行时间
    记录一下自己用python编写计算运行时间的代码 时间类importtimeimportnumpyasnp#编写时间类来方便操作classTimer:def__init__(self):self.times=[]#记录时间self.start()defstart(self):#开始时间启动self.start_time=time.time()......
  • python删除二维数组的某一行某一列
    Python删除二维数组的某一行某一列1.简介在Python中,二维数组可以通过列表嵌套的方式实现。删除二维数组的某一行或某一列可以使用Python内置的列表操作方法来实现。在本篇文章中,我将向你介绍如何使用Python来删除二维数组的某一行或某一列。2.删除二维数组的某一行删除二维......
  • 541. 反转字符串 II
    2023-11-10541.反转字符串II-力扣(LeetCode)思路:先转为char【】,再原地反转(不用取出来),最后转为字符串classSolution{publicStringreverseStr(Strings,intk){//先转为char【】,再原地反转(不用取出来),最后转为字符串intn=s.length()......