我想使用带有Unicode文件名的subprocess.call(),这里是简化后的问题:
n = u'c:\\windows\\notepad.exe '
f = u'c:\\temp\\nèw.txt'
subprocess.call(n + f)
这会触发著名的错误:
UnicodeEncodeError: 'ascii'编解码器无法编码字符u'\xe8'
使用utf-8进行编码会产生错误的文件名,而mbcs会将带有重音符号的文件名作为new.txt传递。
我已经无法再阅读这个令人困惑的主题并且一直在原地打转。我在过去发现了很多不同问题的答案,所以我想加入并寻求帮助。
谢谢
-- coding: utf-8 --
我有时会使用拉丁-1技巧,但在这种情况下不能使用:subprocess.call()
传递Unicode参数了(http://bugs.python.org/issue19264)。 - jfs