如何在python中将unicode字符串转换为普通文本

2024-04-28 11:14:13 发布

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

假设我有一个Unicode字符串(不是真正的Unicode,而是看起来像Unicode的字符串)。我想得到它的utf-8变种。我怎么用Python呢? 例如,如果我有如下字符串:

title = "\\u10d8\\u10e1\\u10e0\\u10d0\\u10d4\\u10da\\u10d8 == \\u10d8\\u10d4\\u10e0\\u10e3\\u10e1\\u10d0\\u10da\\u10d8\\u10db\\u10d8"

我怎样才能得到它的utf-8变体(格鲁吉亚符号):

ისრაელი == იერუსალიმი

简单地说,我希望代码如下:

title = "\\u10d8\\u10e1\\u10e0\\u10d0\\u10d4\\u10da\\u10d8 == \\u10d8\\u10d4\\u10e0\\u10e3\\u10e1\\u10d0\\u10da\\u10d8\\u10db\\u10d8"
utfTitle = title.TurnToUTF()
print(utfTitle)

我希望这段代码有输出:

ისრაელი == იერუსალიმი


Tags: 字符串代码titleunicodeutf变种u10d4u10d8
3条回答

您可以使用unicode-escape编解码器来消除重复的反斜杠,并有效地使用字符串。

假设title是一个str,则在解码回unicode(str)之前,需要先对字符串进行编码。

>>> t = title.encode('utf-8').decode('unicode-escape')
>>> t
'ისრაელი == იერუსალიმი'

如果titlebytes实例,则可以直接解码:

>>> t = title.decode('unicode-escape')
>>> t
'ისრაელი == იერუსალიმი'

给,你走。只需使用decode方法并应用unicode_escape

对于Python 2.x

title = "\\u10d8\\u10e1\\u10e0\\u10d0\\u10d4\\u10da\\u10d8 == \\u10d8\\u10d4\\u10e0\\u10e3\\u10e1\\u10d0\\u10da\\u10d8\\u10db\\u10d8"
utfTitle = title.decode('unicode_escape')
print(utfTitle)

#output :ისრაელი == იერუსალიმი

对于python 3.x

title = "\\u10d8\\u10e1\\u10e0\\u10d0\\u10d4\\u10da\\u10d8 == \\u10d8\\u10d4\\u10e0\\u10e3\\u10e1\\u10d0\\u10da\\u10d8\\u10db\\u10d8"
print(title.encode('ascii').decode('unicode-escape'))

假设unicode是str类型,并使用decode和unicode转义进行转换 方法

title="\\u10d8\\u10e1\\u10e0\\u10d0\\u10d4\\u10da\\u10d8 == \\u10d8\\u10d4\\u10e0\\u10e3\\u10e1\\u10d0\\u10da\\u10d8\\u10db\\u10d8"

res1 = title.encode('utf-8')

res2 = res1.decode('unicode-escape')

print(res2)

相关问题 更多 >