python字符串编码问题

标签 python string unicode encode

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/

相关文章:

c++ - MySQL Connector C/C++ 8.0.13 - 不支持 UNICODE/UTF8?

python - 如何重写此类中的函数?

python - 带子图的猫图有限制吗?

jquery 用未知字符替换 text() 中的字符串

Java String.replaceAll 正则表达式

unicode - Scrappy 的方法 re() 不适用于 Unicode 字符串

python - 计算余弦相似度矩阵,无需 scipy、sklearn.metrics.pairwise

python - var/www/html 中没有 index.lighttpd.html

string - Swift 2.2 循环遍历字符串并获取字符和索引

python - 在 Windows 7 中导入 pymssql Unicode 解码错误