var*_*ble 5 python encode decode python-3.x
编码/解码的用例是什么?
\n\n我的理解是,编码用于将字符串转换为字节字符串,以便能够在程序中传递非 ascii 数据。而decode就是将这个字节串转换回字符串。
\n\n但是,跟着吧。示例显示即使未编码/解码,非 acsii 字符也能成功打印。例子:
\n\nval1="\xc3\x80 \xc3\x88 \xc3\x8c \xc3\x92 \xc3\x99 \xe1\xbb\xb2 \xc7\xb8 \xe1\xba\x80"\nval2 = val1\nprint(\'val1 is: \',val2)\n\nencoded_val1=val1.encode()\nprint(\'encoded_val1 is: \',encoded_val1)\n\ndecoded_encoded_val1=encoded_val1.decode()\nprint(\'decoded_encoded_val1 is: \',decoded_encoded_val1)\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\n\n\n\n那么 python 中的编码和解码的用例是什么?
\n您正在使用的环境可能支持这些字符,此外您的终端(或您用来查看输出的任何设备)可能支持显示这些字符。某些终端/命令行或文本编辑器可能不支持它们。除了显示问题之外,以下是一些实际原因和示例:
\n\n1- 当您通过互联网/网络(例如使用套接字)传输数据时,信息将作为原始字节传输。非ascii字符不能用单个字节表示,因此我们需要一种特殊的表示方式(utf-16或utf-8,具有多个字节)。这是我遇到的最常见的原因。
\n\n2- 某些文本编辑器仅支持 utf-8。例如,您需要以 utf-8 格式表示\xe1\xba\x80字符才能使用它们。原因是在处理文本时,人们大多使用 ASCII 字符,它们只是一个字节。当某些系统需要与非 ASCII 字符集成时,人们将它们转换为 utf-8。一些对文本编辑器有更深入了解的人可能会对这一点给出更好的解释。
\n\n3-您可能有一段用 unicode 字符编写的文本,其中包含一些中文/俄语字母,并且出于某种原因将其存储在远程 Linux 服务器中。但您的服务器不支持这些语言的字母。您需要将文本转换为某种严格的格式(utf-8 或 utf-16)并将其存储在服务器中,以便稍后恢复。
\n\n这里稍微解释一下UTF-8格式。如果您有兴趣,还有有关该主题的其他文章。
\n| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |