Python字符串编码和解码

时间:2018-01-08 13:11:06

标签: python encoding utf-8

JS中的编码意味着将具有特殊字符的字符串转换为转义的可用字符串。例如:encodeURIComponent会将空格转换为%20等,以便在URI中使用。

因此,此处的编码意味着转换为特定格式。

在Python 2.7中,我有一个字符串:奥多比。但是,要将其转换为UTF-8格式,我需要使用decode()函数。 喜欢:“奥多比”.decode(“utf-8”)== u'\ u5965 \ u591a \ u6bd4'

我想了解编码和解码的含义是如何随语言而变化的。对我来说,基本上我应该做“奥多比”.encode(“utf-8”)

我在这里缺少什么。

2 个答案:

答案 0 :(得分:2)

您似乎混淆Unicode text(在Python 2中表示为unicode类型,由文字语法的u前缀表示),使用标准Unicode编码之一, UTF-8。

您没有创建UTF-8,您通过解码从UTF-8字节流创建了一个Unicode文本对象。

byte 字符串文字“奥多比”是一系列二进制数据,字节。您可以在文本编辑器中输入这些文件,并将文件保存为UTF-8(并告诉Python通过使用PEP 263 codec header启动文件将源代码视为UTF-8),或者将其输入到Python交互式文件中在配置为发送UTF-8数据的终端中提示。

我强烈建议您阅读有关字节,编解码器和Unicode文本之间差异的更多信息。强烈建议使用以下链接:

答案 1 :(得分:1)

在Python v2中,它是类型str,即字节序列。要将其转换为Unicode字符串,您需要使用编解码器解码此字节序列。简单地说,它指定了如何将字节转换为Unicode代码点序列。请查看Unicode HOWTO以获取更深入的文章。