gpt4 book ai didi

Python: "...".encode ("utf8") 修复了什么?

转载 作者:太空狗 更新时间:2023-10-29 19:32:33 24 4
gpt4 key购买 nike

我想对 python 字符串进行 url 编码,但希伯来文字符串出现异常。我无法修复它并开始做一些面向猜测的编程。最后,在将它发送到 url 编码器之前执行 mystr = mystr.encode("utf8") 挽救了这一天。

有人能解释一下发生了什么吗? .encode("utf8") 是做什么的?无论如何,我的原始字符串是一个 unicode 字符串(即以 u 为前缀)。

最佳答案

My original string was a unicode string anyways (i.e. prefixed by a u)

...这就是问题所在。它本身不是“字符串”,而是“Unicode 对象”。它包含一系列 Unicode 代码点。当然,这些代码点必须有一些 Python 知道的内部表示,但无论是什么都被抽象掉了,它们显示为 \uXXXX。当你的实体print repr(my_u_str) .

要获得另一个程序可以理解的字节序列,您需要获取该 Unicode 代码点序列并对其进行编码。您需要决定编码,因为有很多可供选择。 UTF8 和 UTF16 是常见的选择。如果合适的话,ASCII 也可以。 u"abc".encode('ascii')工作得很好。

my_u_str = u"\u2119ython"然后 type(my_u_str)type(my_u_str.encode('utf8'))查看类型的差异:第一个是 <type 'unicode'>第二个是<type 'str'> . (无论如何,在 Python 2.5 和 2.6 下)。

在 Python 3 中情况有所不同,但由于我很少使用它,所以如果我试图对它说任何权威的话,我会说出我的帽子。

关于Python: "...".encode ("utf8") 修复了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com