python中有没有等价于给字符串加上'u'前缀的函数?
假设我有一个字符串:
a = 'C\xc3\xa9dric Roger'
我想把它转换成:
b = u'C\xc3\xa9dric Roger'
这样我就可以将它与其他 unicode 对象进行比较。我怎样才能做到这一点?我的第一直觉是尝试:
>>>> b = unicode(a)
Traceback (most recent call last):
File "<string>", line 1, in <fragment>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)
但这似乎是在尝试解码字符串。是否有在不进行任何解码的情况下转换为 unicode 的功能? (这是“u”前缀的作用还是我误解了?)
最佳答案
你需要指定一个编码:
unicode(a, 'utf8')
或者,使用 str.decode()
:
a.decode('utf8')
但一定要为您的输入选择正确的编解码器;你这里显然有 UTF-8 数据,但情况可能并非总是如此。
要了解它的作用,我建议您阅读:
关于python字符串编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20687319/