首页 > 其他分享 >字符编码发展史_编码/解码_可变/不可变数据类型

字符编码发展史_编码/解码_可变/不可变数据类型

时间:2023-12-04 15:37:03浏览次数:41  
标签:编码 UTF 字符 解码 数据类型 Unicode 编码方案

【一】什么是字符编码

字符编码是一种将字符映射到数字编码的方法。由于计算机内部实际处理的是二进制数据,而字符是人类可读的符号,所以需要一种方式来表示和存储字符。字符编码就是将字符映射为对应的数字编码,以便计算机能够识别和处理字符。

【二】字符编码的发展史

字符编码的发展经历了多个阶段和标准的演变。下面是字符编码的主要发展史:

  1. ASCII(美国信息交换标准代码):ASCII是最早的字符编码标准,于1963年发布。它使用7位二进制数(共128个编码)来表示常见的英文字母、数字和一些特殊字符。由于只有128个编码,ASCII编码无法表示其他语言的字符。

  2. 扩展ASCII:为了满足其他语言字符的需求,出现了扩展ASCII编码,使用了8位二进制数(共256个编码)。扩展ASCII包含了ASCII编码的范围,并在剩余的编码空间中添加了其他字符。

  3. Unicode:随着计算机的发展和国际化的需求,需要一种能够表示全球范围内所有字符的编码方案。Unicode应运而生,它是一个字符集,为世界上几乎所有的字符都分配了一个唯一的数字编码。Unicode采用多字节编码方式,可以使用不同的编码方案来表示字符。

  4. UTF-8:Unicode的实现方式之一是UTF-8编码。UTF-8(Unicode Transformation Format - 8-bit)是一种可变长编码方式,它使用1到4个字节来表示字符,根据字符的不同而变化。UTF-8编码具有向后兼容性,能够表示所有Unicode字符,并且在存储空间和传输效率上相对较高,因此成为互联网上广泛使用的字符编码方案之一。

  5. 其他Unicode编码方案:除了UTF-8,Unicode还有其他编码方案,如UTF-16和UTF-32。UTF-16使用2个或4个字节来表示字符,而UTF-32则始终使用4个字节表示字符。这些编码方案在某些特定情况下仍然被使用,但在互联网上广泛采用的是UTF-8编码。

总结起来,字符编码的发展经历了从ASCII到Unicode的转变,Unicode又衍生出了不同的编码方案,其中UTF-8成为互联网上广泛使用的字符编码方案。这些发展使得计算机能够表示和处理全球范围内的各种字符。

![[Pasted image 20231204150250.png]]

【三】编码与解码

3.1 - 什么是编码

编码是一种将信息转换为特定形式或规则的过程,以便计算机或其他设备能够理解和处理这些信息。不同的编码方式适用于不同类型的数据和应用场景。

test = '测试'  
print(test.encode('utf-8'))  # b'\xe6\xb5\x8b\xe8\xaf\x95'

3.2 - 什么是解码

解码是将经过编码的数据转换回原始的形式或格式的过程。它是编码的逆向操作,用于还原编码后的数据,以便计算机或其他设备能够正确地处理和使用这些数据。

test = b'\xe6\xb5\x8b\xe8\xaf\x95'  
print(test.decode('utf-8'))  # 测试

【四】可变数据类型与不可变数据类型

在Python中,可变数据类型和不可变数据类型是指对象在创建后是否可以被修改。下面是Python中常见的可变数据类型和不可变数据类型:

可变数据类型:

  1. 列表(List):列表是一种有序的可变集合,可以包含任意类型的元素。列表可以通过索引进行修改、添加或删除元素。
  2. 字典(Dictionary):字典是一种键-值对的可变集合,用于存储和访问具有唯一键的元素。字典中的键是不可变的,但值可以是任意类型的对象。字典可以通过键来修改、添加或删除元素。

不可变数据类型:

  1. 数字(Number):包括整数(int)、浮点数(float)、复数(complex)等。数字对象在创建后无法修改。
  2. 字符串(String):字符串是一系列字符的不可变序列。字符串对象在创建后无法修改,但可以通过切片等操作来创建新的字符串。
  3. 元组(Tuple):元组是一种有序的不可变序列,可以包含任意类型的元素。元组对象在创建后无法修改,但可以通过索引来访问元素。

标签:编码,UTF,字符,解码,数据类型,Unicode,编码方案
From: https://www.cnblogs.com/wx-x/p/17875043.html

相关文章

  • python之字符编码
    【字符编码的发展史】一家独大:ASCII(识别英文字符)-------------诸侯割据(ASCII/GBK/Shift_JIS)---------------一统天下(存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符,unicode) 字母对应ASCII表A-Z:65-90a-z:97-1220-9:48-57小写字母对应的数字一定大于大写字母 ......
  • Acwing 3240. 压缩编码
    本题大意:使用01串为单词编码,要求:1、编码使用前缀码,即任何一个单词的编码不是另一个单词编码的前缀;2、编码需要按字典序升序排列,比如 \(C\) 的编码的字典序需要 \(D\) 的编码之前。请找出一种字典序编码,使得文字经过编码后的长度\(L\)最小,输出最小长度。原题链接:324......
  • 在Winform应用中增加通用的业务编码规则生成
    在我们很多应用系统中,往往都需要根据实际情况生成一些编码规则,如订单号、入库单号、出库单号、退货单号等等,我们有时候根据规则自行增加一个函数来生成处理,不过我们仔细观察后,发现它们的编码规则有很大的共通性,因此可以考虑使用一些通用的业务编码规则生成,从而在系统中统一维护即......
  • 数据类型内置方法
    数据类型内置方法介绍八大基本数据类型数字类型整形(int)浮点型(float)字符串(str)列表(list)元组(tuple)布尔(bool)字典(dict)集合(set)【一】整型(int)(1)类型强转可以将由纯整数构成的字符串直接转换成整型符合int类型格式的字符串可以强转成整数类型num='123'print......
  • Java基础-数据类型
    目录注释写代码时,书写注释是一个非常好的习惯。平时写代码一定要注意规范选中代码,shift+ctrl+/搞定。标识符java所有的组成部分都需要名字,类名,变量名以及方法名被称为标识符。所有的标识符都是以字母,美元符,或者下划线开始的。数据类型1.强类型语言:要求变量的使用要严......
  • python中级之数据类型内置方法
    引子 数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型),单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作,为了提升我们的开发效率,python针对这些常用的操作,为每一种数据类型内......
  • 基本数据类型的内置方法
    基本类型的内置方法数字类型(一)整型int(二)浮点型float(一)整型int#整型#number='111'#print(number,type(number))#111<class'str'>##1.类型强转,符合int类型格式的字符串强转为整型。#print(int(number),type(int(number)))#111<class'int'>##2.十进制转换为其......
  • 数据类型内置方法
    数据类型内置方法介绍八大基本数据类型数字类型整形(int)浮点型(float)字符串(str)列表(list)元组(tuple)布尔(bool)字典(dict)集合(set)【一】整型(int)(1)类型强转可以将由纯整数构成的字符串直接转换成整型符合int类型格式的字符串可以强转成整数类型num='123'print......
  • 学c笔记归纳 第二篇——基本数据类型
    基本数据类型告诉编译器,变量是什么类型,不同类型占内存大小不同,单位:字节char字符型 1short短整型2int整型  4long长整型 4longlong更长的整型 ......
  • 极语言3-12绘图启动类、编解码类、串口通讯类、串口系统类、串口时间类、串口配置类—
    中文名字英文名称长度作用解释绘图启动类GdiplusStartupInput24包含GdiplusStartup函数所需的一个参数块。绘图启动类——成员表版本GdiplusVersion整数必须为1回调DebugEventCallback整数可以在调试版本上调用的回调函数的指针背景SuppressBackgroundThread整数指定是否禁止显示G......