0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python编码与解码

麦辣鸡腿堡 来源:Python都知道 作者:了不起 2023-07-05 15:59 次阅读

先做下科普:UNICODE字符编码,也是一张字符与数字的映射,但是这里的数字被称为代码点(code point), 实际上就是十六进制的数字。

Python官方文档中对Unicode字符串、字节串与编码之间的关系有这样一段描述:

Unicode字符串是一个代码点(code point)序列,代码点取值范围为0到0x10FFFF(对应的十进制为1114111)。这个代码点序列在存储(包括内存和物理磁盘)中需要被表示为一组字节(0到255之间的值),而将Unicode字符串转换为字节序列的规则称为编码。

这里说的编码不是指字符编码,而是指编码的过程以及这个过程中所使用到的Unicode字符的代码点与字节的映射规则。这个映射不必是简单的一对一映射,因此编码过程也不必处理每个可能的Unicode字符,例如:

将Unicode字符串转换为ASCII编码的规则很简单--对于每个代码点:

如果代码点数值《128,则每个字节与代码点的值相同

如果代码点数值》=128,则Unicode字符串无法在此编码中进行表示(这种情况下,Python会引发一个UnicodeEncodeError异常)

将Unicode字符串转换为UTF-8编码使用以下规则:

如果代码点数值《128,则由相应的字节值表示(与Unicode转ASCII字节一样)

如果代码点数值》=128,则将其转换为一个2个字节,3个字节或4个字节的序列,该序列中的每个字节都在128到255之间。

简单总结:

编码(encode):将Unicode字符串(中的代码点)转换特定字符编码对应的字节串的过程和规则

解码(decode):将特定字符编码的字节串转换为对应的Unicode字符串(中的代码点)的过程和规则

可见,无论是编码还是解码,都需要一个重要因素,就是特定的字符编码。因为一个字符用不同的字符编码进行编码后的字节值以及字节个数大部分情况下是不同的,反之亦然。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    835

    浏览量

    54457
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
收藏 人收藏

    评论

    相关推荐

    正交编码解码原理及解码思路

    一、正交编码解码原理:二、解码思路(1)方法一:使用定时器的输入捕获功能,配置好TIM_ICInitTypeDef即可获取一定时间内的脉冲个数,并可根据B相上升沿时A相所处的电平判断电机正转还是反转。中断类型配置为更新事件和上升
    发表于 08-16 06:38

    PT2262编码芯片的软件解码

    PT2262编码芯片的软件解码 详述PT2262编码和软件解码
    发表于 04-07 16:48 240次下载

    什么是音频的编码解码/HZ(赫兹)

    什么是音频的编码解码/HZ(赫兹)    编码解码:在数字音频技术中,用数字大小来代替声音强弱高低的模拟电压,并对音频
    发表于 02-05 11:28 1423次阅读

    曼彻斯特编码解码及其应用

    曼彻斯特编码解码及其应用。
    发表于 05-20 14:28 0次下载

    h264编码解码源代码

    h264编码解码源代码h264编码解码源代码
    发表于 01-14 15:50 34次下载

    短信编码解码C语言

    1.消息编码解码 用C实现7-bit编码解码的算法如下: // 7-bit编码 // pSrc: 源字符串指针 // pDst: 目标
    发表于 08-30 16:59 4次下载
    短信<b class='flag-5'>编码</b>与<b class='flag-5'>解码</b>C语言

    java实现的哈夫曼编码解码

     摘要:哈夫曼编码作为一种编码方式,已经在生活中得到了实际的运用,下面我们以java实现的哈夫曼编码解码为核心来讲述它的编码方式及程序等。
    发表于 12-11 08:39 5548次阅读
    java实现的哈夫曼<b class='flag-5'>编码</b>与<b class='flag-5'>解码</b>

    NVIDIA推出适用于Python的VPF,简化开发GPU加速视频编码/解码

    NVIDIA推出了适用于Python的开源视频处理框架“VideoProcessingFramework”(VPF)。据悉,VPF 是一组开源的C ++库和Python绑定,可与其封闭源代码Codec SDK进行交互。该框架的功能是简化从
    的头像 发表于 12-18 14:25 6609次阅读

    STM32的音频编码与在PC端的解码

    STM32的音频编码与在PC端的解码简介STM32F4移植编码PC移植解码结尾简介能看到这篇文章的基本上都是有迫切需求的人,话不多说,切入正题编解码
    发表于 12-16 16:53 20次下载
    STM32的音频<b class='flag-5'>编码</b>与在PC端的<b class='flag-5'>解码</b>

    基于transformer的编码器-解码器模型的工作原理

    与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个
    发表于 06-11 14:17 1322次阅读
    基于transformer的<b class='flag-5'>编码</b>器-<b class='flag-5'>解码</b>器模型的工作原理

    基于 Transformers 的编码器-解码器模型

    基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读
    的头像 发表于 06-16 16:53 512次阅读
    基于 Transformers 的<b class='flag-5'>编码</b>器-<b class='flag-5'>解码</b>器模型

    神经编码器-解码器模型的历史

    基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读
    的头像 发表于 06-20 15:42 476次阅读
    神经<b class='flag-5'>编码</b>器-<b class='flag-5'>解码</b>器模型的历史

    Python中的默认编码

    ####1. Python源代码文件的执行过程 我们都知道,磁盘上的文件都是以二进制格式存放的,其中文本文件都是以某种特定编码的字节形式存放的。对于程序源代码文件的字符编码是由编辑器指定的,比如
    的头像 发表于 07-05 16:11 886次阅读
    <b class='flag-5'>Python</b>中的默认<b class='flag-5'>编码</b>

    Python字符编码转换

    UNICODE字符串可以与任意字符编码的字节进行相互转换,如图: 那么大家很容易想到一个问题,就是不同的字符编码的字节可以通过Unicode相互转换吗?答案是肯定的。 Python2中的字符串进行
    的头像 发表于 07-05 16:25 831次阅读
    <b class='flag-5'>Python</b>字符<b class='flag-5'>编码</b>转换

    视频编码器与解码器的应用方案

    视频解码器和视频编码器在数字通讯、音视频压缩领域有着广泛的应用。视频编码器作为视频源的发送端,若接收端如果是 PC 机或显示设备就需要通过解码器进行
    的头像 发表于 08-14 14:38 902次阅读
    视频<b class='flag-5'>编码</b>器与<b class='flag-5'>解码</b>器的应用方案