我有一个带有字符串'\ u96e8'的变量,我想将其转换为unicode,因为函数kanji_to_romaji()仅接受unicode。我该怎么做?我使用的是python 2.7
# -*- coding: UTF-8 -*-
from kanji_to_romaji import kanji_to_romaji
message = '\u96e8'
message = unicode(message)
x = kanji_to_romaji(message)
print(x)
答案 0 :(得分:1)
您可以使用 unicode-escape 编解码器将字节字符串解码为unicode。
>>> message = '\u96e8'
>>> unicode_message = message.decode('unicode-escape')
>>> unicode_message
u'\u96e8'
>>> print unicode_message
雨
答案 1 :(得分:0)
使用ast.literal_eval
:
>>> message = '\u96e8'
>>> ast.literal_eval('u"{}"'.format(message))
u'\u96e8'
技巧是构造一个包含unicode
字符串文字的字符串,并将其作为参数传递给literal_eval
。也就是说,u"\u96e8"
而不只是\u96e8
。
(不过,这只是部分正确。如果message
本身的值包含双引号,它将会失败。在其他情况下,也可能会失败。)