为什么我们需要在Python中进行编码和解码?

2023-12-25

编码/解码的用例是什么?

我的理解是,编码用于将字符串转换为字节字符串,以便能够在程序中传递非 ascii 数据。而decode就是将这个字节串转换回字符串。

有点遵循。示例显示即使未编码/解码,非 ascii 字符也能成功打印。例子:

val1="À È Ì Ò Ù Ỳ Ǹ Ẁ"
val2 = val1
print('val1 is: ',val2)

encoded_val1=val1.encode()
print('encoded_val1 is: ',encoded_val1)

decoded_encoded_val1=encoded_val1.decode()
print('decoded_encoded_val1 is: ',decoded_encoded_val1)

Output:

那么 python 中的编码和解码的用例是什么?


您正在使用的环境可能支持这些字符,此外您的终端(或您用来查看输出的任何设备)可能支持显示这些字符。某些终端/命令行或文本编辑器可能不支持它们。除了显示问题之外,以下是一些实际原因和示例:

1- 当您通过互联网/网络(例如使用套接字)传输数据时,信息将作为原始字节传输。非ascii字符不能用单个字节表示,因此我们需要一种特殊的表示方式(utf-16或utf-8,具有多个字节)。这是我遇到的最常见的原因。

2- 某些文本编辑器仅支持 utf-8。例如,您需要代表您的Ẁ https://www.compart.com/en/unicode/U+1E80utf-8 格式的字符以便使用它们。原因是在处理文本时,人们大多使用 ASCII 字符,它们只是一个字节。当某些系统需要与非 ASCII 字符集成时,人们将它们转换为 utf-8。一些对文本编辑器有更深入了解的人可能会对这一点给出更好的解释。

3-您可能有一段用 unicode 字符编写的文本,其中包含一些中文/俄语字母,并且出于某种原因将其存储在远程 Linux 服务器中。但您的服务器不支持这些语言的字母。您需要将文本转换为某种严格的格式(utf-8 或 utf-16)并将其存储在服务器中,以便以后可以恢复它们。

这里有一个小解释UTF-8 格式 https://www.fileformat.info/info/unicode/utf8.htm。如果您有兴趣,还有有关该主题的其他文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们需要在Python中进行编码和解码? 的相关文章

随机推荐

  • 实时监控 PostgreSQL 查询的应用程序?

    我想监视从应用程序发送到我的数据库的查询 为此 我发现pg stat activity 但更常见的是 返回的行读取为 事务中 我要么做错了什么 要么速度不够快 无法看到查询的结果 要么感到困惑 要么是以上所有情况 有人可以推荐最简单的方法来
  • 如何在expressjs中生成站点地图

    我从站点地图 xml 生成器网站下载了 XML 站点地图 我将 sitemap xml 放在我的公共目录中 但是当我尝试将 sitemap xml 提交到 google 控制台时 我收到以下错误 一般 HTTP 错误 404 未找到 HTT
  • MobileFirst 7.1 Progurd 获取错误返回代码 1

    我在 eclipse 中使用 mobilefirst 7 1 环境 我只是创建示例混合应用程序并添加 android 环境 然后我在出现以下错误时获取未签名的 apk 请为此帮助我 谢谢 Proguard project txt To en
  • 不再有 PHP 5.3.x 的 VC6 版本吗?

    我需要在运行 Apache 的 Windows 机器上安装 PHP 5 3 x 最好是 x gt 4 不幸的是 在PHP 下载页面 http windows php net download 我找不到任何用VC6编译的PHP 5 3 x 所
  • “您尚未指定用作弹出窗口内容的视图”

    所以我一直在尝试在我的游戏中实现排行榜 成就 并且在没有任何类型的实现的情况下 游戏运行得很好 我已成功导入 google play services lib 并复制到 BaseGameUtils 但每当我尝试调用 GameHelper 对
  • Service Fabric 服务远程处理

    过去几周我一直在从云服务迁移到 Service Fabric 并且在两个服务之间使用远程处理时遇到了一些障碍 我一直在使用服务远程处理的官方文档和示例代码 特别是我试图让此处概述的示例正常工作 https learn microsoft c
  • 如何删除 wp 短代码中的
     标签?                
                

    我正在尝试创建一个短代码来显示最新的帖子 我使用了以下代码作为短代码 function my recent posts shortcode atts extract shortcode atts array limit gt 5 atts
  • Spark Streaming mapWithState 超时延迟?

    我预计 Spark 1 6 的新 mapWithState API 能够几乎立即删除超时的对象 但存在延迟 我正在使用改编版本测试 APIJavaStatefulNetworkWordCount https github com apach
  • 如何制作动画到wrap_content?

    是否可以使用动画ValueAnimator to wrap content 这似乎只适用于恒定值 public static void valueAnimate final View obj int from int to Interpol
  • 集中回滚-用于使用@transactional

    是否可以告诉Spring回滚异常MyException也RuntimeException使用时在 XML 配置中 transactional 我知道可以在注释中设置回滚 但如果我有很多服务都设置相同的异常 那么这似乎是多余的 我看到人们建议
  • JUnit 5:指定嵌套测试的执行顺序

    是否可以以固定的执行顺序在其他一些测试之间执行多个嵌套测试 E g TestInstance Lifecycle PER CLASS TestMethodOrder OrderAnnotation class class MyTest pr
  • POSIXct 日期转换错误[重复]

    这个问题在这里已经有答案了 将一组字符格式的日期转换为 POSIXct 对象时 我遇到了以下错误 示例数据 t lt c 3 11 2007 1 30 3 11 2007 2 00 4 11 2007 2 00 str t chr 1 3
  • 如何使用区域设置获取特定国家/地区的货币符号?

    我已经尝试过这段代码 它给了我Country Code对于某些国家而不是currency symbol 我想要货币符号而不是代码 数组 resourcesList 包含所有具有其代码的国家 地区 String m String Array
  • 如何在 Android 应用程序中指定和添加自定义打印机?

    我正在为 Android 创建一个应用程序 所需的应用程序功能的一部分是用户可以选择一个特殊的打印机 我们将其称为传输打印机 它将将要打印的文档传递到在外部服务器上运行的进程 我需要采取哪些步骤才能将自定义打印机添加到 Android 打印
  • 双包含解决方案?

    在 C 中 我遇到了双重包含的问题 文件 stuffcollection h pragma once ifndef STUFFCOLLECTION H define STUFFCOLLECTION H include Stage h cla
  • Tensorflow、try 和 except 不处理异常

    我是张量流的新手 我在这里遇到了一个恼人的问题 我正在制作一个程序 加载使用以下命令拍摄的图像 原始数据 tf WholeFileReader read image name queue 从 tfrecord 文件中读取 然后使用tf im
  • 在同一表达式中调用具有局部副作用的函数两次是否是未定义的行为?

    int f static int i 0 return i int g return f f Does g return 3或者是结果undefined 章节和诗句 http www open std org jtc1 sc22 wg14
  • 属性 insetForeground 已经定义

    更新到新版本后 com android support design 22 2 0 我收到这个错误 属性 insetForeground 已经定义 请记住 我正在使用 romannurikScrimInsetsFrameLayout jav
  • Ruby on Rails,找不到有效的 gem 'rails'

    我安装了 ruby 并更新了 ruby gems 现在我想下载 Rails 3 2 13 我写 gem install Rails v 3 2 13 我需要这个版本 我有这个错误 ERROR Could not find a valid g
  • 为什么我们需要在Python中进行编码和解码?

    编码 解码的用例是什么 我的理解是 编码用于将字符串转换为字节字符串 以便能够在程序中传递非 ascii 数据 而decode就是将这个字节串转换回字符串 有点遵循 示例显示即使未编码 解码 非 ascii 字符也能成功打印 例子 val1