python - 为什么我们需要在python中编码和解码?

标签 python python-3.x decode encode

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

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

但是跟随。示例显示非 acsii 字符即使没有编码/解码也能成功打印。示例:

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)

输出:

enter image description here

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

最佳答案

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

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

2- 一些文本编辑器只支持 utf-8。例如,您需要代表您的 utf-8 格式的字符以便与它们一起工作。原因是在处理文本时,人们大多使用 ASCII 字符,它只有一个字节。当一些系统需要与非 ascii 字符集成时,人们将它们转换为 utf-8。对于这一点,一些对文本编辑器有更深入了解的人可能会给出更好的解释。

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

这里是对UTF-8 format的一点解释.如果您有兴趣,还有关于该主题的其他文章。

关于python - 为什么我们需要在python中编码和解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182188/

相关文章:

python - 从字符串列表中提取标记集

python - 对于另一个字典中的字典,如何按值对其进行排序并比较字典中的不同项目

python - 如何在 python 中将完整输出写入文件而不附加

javascript - 在js中压缩0's and 1'的字符串

Python:使用打开文件对话框将文件分配给变量?

python - 使用 Rasterio 和 Fiona 剪切栅格

python-3.x - 如何将不同列的 value_count() 值打印在一起?

mysql - 从 bugzilla 数据库 (MySQL) 检索错误时出现 DjangoUnicodeDecodeError

python - 如何避免一直将字节解码为字符串?

Python 存储和比较时间戳