Joh*_*all 2 python string unicode encode
python中是否有一个函数相当于用'u'为字符串添加前缀?
假设我有一个字符串:
a = 'C\xc3\xa9dric Roger'
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
b = u'C\xc3\xa9dric Roger'
Run Code Online (Sandbox Code Playgroud)
这样我就可以将它与其他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)
Run Code Online (Sandbox Code Playgroud)
但这似乎是试图解码字符串.是否有一个函数可以在不进行任何解码的情况下转换为unicode?(这是'u'前缀的作用或我误解了吗?)
您需要指定编码:
unicode(a, 'utf8')
Run Code Online (Sandbox Code Playgroud)
或者,使用str.decode():
a.decode('utf8')
Run Code Online (Sandbox Code Playgroud)
但请为您的输入选择正确的编解码器; 你在这里明显有UTF-8数据,但情况可能并非总是如此.
为了理解这一点,我建议您阅读:
绝对最低每个软件开发人员绝对必须知道关于Unicode和字符集(没有任何借口!)作者:Joel Spolsky
Ned Batchelder的实用Unicode
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |