我在sqlite3 db中有一个包含字符串的字段:
title = "Friedrich_N\u00FCrnberg"
我在变量中读取了这个字符串,我想将它的unicode版本传递给subprocess.Popen调用。
我通过Popen调用的软件需要作为输入接收:
Friedrich_Nürnberg
而不是:
Friedrich_N\u00FCrnberg
否则它的计算是徒劳的。
这是主叫代码:
subprocess.Popen([command, title], stdout=subprocess.PIPE)
我该如何修改?
非常感谢。
PS。如果我手动尝试添加u“”它可以工作,但我不能使用该语法,因为我没有明确说明每个变量的文本内容。
答案 0 :(得分:2)
这称为Unicode转义序列。您想要的所需字符称为编码字符。
以下是在Python shell中解码unicode转义序列的示例。
>>> title = "Friedrich_N\u00FCrnberg"
>>> character = title.decode("unicode-escape")
>>> character
u'Friedrich_N\xfcrnberg'
>>> print character
Friedrich_Nürnberg
你可以尝试:
title = title.decode("unicode-escape")
subprocess.Popen([command, title], stdout=subprocess.PIPE)
我写了另一个答案,我认为这个答案相当不错。 Decoding Unicode in Python