Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Unicode和subprocess.Popen_Python 2.7_Unicode_Subprocess - Fatal编程技术网

Python 2.7 Unicode和subprocess.Popen

Python 2.7 Unicode和subprocess.Popen,python-2.7,unicode,subprocess,Python 2.7,Unicode,Subprocess,我在sqlite3数据库中有一个字段,其中包含如下字符串: title = "Friedrich_N\u00FCrnberg" 我在变量中读取这些字符串,并希望将其unicode版本传递给subprocess.Popen调用 我通过Popen调用的软件需要接收以下输入: Friedrich_Nürnberg 与此相反: Friedrich_N\u00FCrnberg 否则,它的计算是徒劳的 这是调用代码: subprocess.Popen([command, title], stdout=

我在sqlite3数据库中有一个字段,其中包含如下字符串:

title = "Friedrich_N\u00FCrnberg"
我在变量中读取这些字符串,并希望将其unicode版本传递给subprocess.Popen调用

我通过Popen调用的软件需要接收以下输入:

Friedrich_Nürnberg
与此相反:

Friedrich_N\u00FCrnberg
否则,它的计算是徒劳的

这是调用代码:

subprocess.Popen([command, title], stdout=subprocess.PIPE)
如何修改它

非常感谢


如果我手动尝试添加一个u“”,它会工作,但我不能使用该语法,因为我没有明确说明每个变量的文本内容。

这称为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)
我写了另一个答案,我认为这很好地解释了这一点。

@michele:如果您需要
.decode('unicode-escape')
,那么您的数据链中有问题。修复生成字符串的上游代码,以生成已知编码的Unicode字符串或ByTestRing。@J.F.Sebastian可能海报无法控制上游数据。@icedtrees:我们不知道。这意味着第一个选择是修复上游。如果我们不能修复上游。我们不能t@J.F.Sebastian我建议你在第一次评论中明确这一点。“您的数据链中出现了一些错误”是非常误导人的。通常,软件限制会迫使人们将unicode存储在转义序列中,这样说并没有什么“错误”。@icedtrees:是的。这是错误的。如果exchange在内存中,则应使用Unicode字符串。如果它存储在外部(磁盘、网络),则可以使用类似于
json
的东西(它甚至使用类似的Unicode转义)。您不应该在代码中看到
unicode转义