在python中,如何将字符串斜杠转换为转义序列
In python, how to transform the string slash to a escape sequence
我想知道如何将包含 Unicode ASCII 描述符的字符串转换为实际的 Unicode 字符。
例如,如何将 u"\\u1234" 转换为 u"\u1234" ?
谢谢。
decode('unicode-escape')
,例如:
>>> s = u'\u03be'
>>> s
u'\u03be'
>>> print s
\u03be
>>> e = s.decode('unicode-escape')
>>> e
u'\u03be'
>>> print e
ξ
这行得通,但最好能解决问题的根源。字符串首先来自哪里?是JSON吗?一些 Python 代码?
这是我的做法,使用 ast.literal_eval
。 ast.literal_eval
解析 python 字面量 而不 执行嵌入其中的任何代码,因此在程序中使用它更安全。
关键思想是评估您想要的字符串表示形式,例如 u"34"
import ast
s=u"\u04d2"
s_bis=ast.literal_eval( u'u"'+s+u'"' )
编辑:georg 的解决方案要好得多。
我想知道如何将包含 Unicode ASCII 描述符的字符串转换为实际的 Unicode 字符。
例如,如何将 u"\\u1234" 转换为 u"\u1234" ?
谢谢。
decode('unicode-escape')
,例如:
>>> s = u'\u03be'
>>> s
u'\u03be'
>>> print s
\u03be
>>> e = s.decode('unicode-escape')
>>> e
u'\u03be'
>>> print e
ξ
这行得通,但最好能解决问题的根源。字符串首先来自哪里?是JSON吗?一些 Python 代码?
这是我的做法,使用 ast.literal_eval
。 ast.literal_eval
解析 python 字面量 而不 执行嵌入其中的任何代码,因此在程序中使用它更安全。
关键思想是评估您想要的字符串表示形式,例如 u"34"
import ast
s=u"\u04d2"
s_bis=ast.literal_eval( u'u"'+s+u'"' )
编辑:georg 的解决方案要好得多。