Unicode和subprocess.Popen

时间:2014-03-18 09:57:15

标签: python-2.7 unicode subprocess

我在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“”它可以工作,但我不能使用该语法,因为我没有明确说明每个变量的文本内容。

1 个答案:

答案 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