gpt4 book ai didi

python - python中的行为unicode字符串

转载 作者:行者123 更新时间:2023-11-28 21:14:59 24 4
gpt4 key购买 nike

我看过这个question我对如何在运行时将 var 转换为 unicode 有疑问?是否正确使用 unicode 功能?还有其他方法可以在运行时转换字符串吗?

print(u'Cami\u00f3n') # prints with right special char

name=unicode('Cami\u00f3n')
print(name) # prints bad ===> Cami\u00f3n

name.encode('latin1')
print(name.decode('latin1')) # prints bad ===> Cami\u00f3n

encoded_id = u'abcd\xc3\x9f'
encoded_id.encode('latin1').decode('utf8')
print encoded_id.encode('latin1').decode('utf8') # prints right

我在 stackoverflow 上看到了很多 python unicode 问题,但我无法理解这种行为。

最佳答案

正因为如此,如果您没有为 unicode 函数指定任何编码,那么:

unicode() will mimic the behaviour of str() except that it returns Unicode strings instead of 8-bit strings. More precisely, if object is a Unicode string or subclass it will return that Unicode string without any additional decoding applied.

因此您将拥有一个 str 版本的 unicode(Unicode 部分将被转义):

>>> name=unicode('Cami\u00f3n')
>>> print(name)
Cami\u00f3n
>>> name
u'Cami\\u00f3n'
^

为了解决这个问题,您可以使用 'unicode-escape' 作为编码来避免将 Unicode 转换为字符串!

>>> name=unicode('Cami\u00f3n','unicode-escape')
>>> name
u'Cami\xf3n'
>>> print(name)
Camión

关于python - python中的行为unicode字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866280/

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