如何在python字符串中将unicode转义序列转换为unicode字符

2024-04-25 22:03:28 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

给定一个带Unicode转义符的字节字符串b"\N{SNOWMAN}"b"\N{SNOWMAN}".decode('unicode-escape)将生成预期的Unicode字符串u'\u2603'

我怀疑它确实工作正常。默认情况下,Python以ASCII编码显示字符串,因为并非所有终端都支持unicode。不过,如果你真的打印字符串,它应该可以工作。请参见以下示例:

>>> u'\xcfa'
u'\xcfa'
>>> print u'\xcfa'
Ïa

假设Python将名称视为普通字符串,则首先必须将其解码为unicode:

>>> name
'Christensen Sk\xf6ld'
>>> unicode(name, 'latin-1')
u'Christensen Sk\xf6ld'

实现这一目标的另一种方式:

>>> name.decode('latin-1')
u'Christensen Sk\xf6ld'

注意字符串前面的“u”,表示它未编码。如果打印此文件,将正确显示重音字母:

>>> print name.decode('latin-1')
Christensen Sköld

BTW:必要时,可以使用de“encode”方法将unicode转换为UTF-8字符串:

>>> name.decode('latin-1').encode('utf-8')
'Christensen Sk\xc3\xb6ld'

相关问题 更多 >

    热门问题