gpt4 book ai didi

python - 将变量类型转换为 unicode 字符串

转载 作者:太空狗 更新时间:2023-10-30 01:27:15 25 4
gpt4 key购买 nike

我正在寻找一种将变量(可以是 ASCII 字符串、带有 é 或 £ 等额外字符的 unicode 字符串,或者 float 或整数)转换为 unicode 字符串的方法。

variable.encode('utf-8') 其中 variable 是一个整数导致 AttributeError: 'int' object has no attribute 'encode'

str(variable).encode('utf-8') 其中 variable 是字符串 '£' 结果为 UnicodeDecodeError:'ascii' 编解码器无法解码位置 0 中的字节 0xc2:序号不在范围内(128)

有没有一种简单的方法可以在 Python 2.7 中完成我正在寻找的事情?还是我必须检查变量的类型并以不同的方式处理它?<​​/p>

最佳答案

编码永远不会产生 unicode 对象。您从字节解码unicode

因此,您将转换为 str(字节字符串),然后通过解码转换为 unicode:

str(obj).decode('utf8')

对于已经 unicode 值的对象,这仍然会失败,因此您可能希望使用 try..except 来捕捉这种情况:

try:
obj = str(obj).decode('utf8')
except UnicodeEncodeError:
# already unicode
pass

如果您尝试对字节字符串进行编码,Python 2 会先隐式地为您解码为 unicode,这就是您得到 UnicodeDecodeError 的原因。

关于python - 将变量类型转换为 unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40334283/

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