我遇到了debian
/ django
/ python
/ subprocess.Popen
/ wkhtmltopdf
的编码问题(不确定哪个部分导致问题)
该问题与在Amazon Ubuntu服务器上通过Python的wkhtmltopdf
将{unicode字符串传递到subprocess.Popen
有关。
代码:
popen = subrocess.Popen(
['wkhtmltopdf', '--header-right', u'Copyright © 2012 Sité Náme', 'file.html', '-'],
stdout=subprocess.PIPE)
在我的OSX Lion开发机器上,页面标题正确显示版权符号和带重音的字母。在我们的生产和测试服务器上,不是那么多。
Django在上面的行上返回了这个错误:'execv()arg 2必须只包含字符串'。如果我删除非ascii字符,它确实有效。
服务器是Debian GNU / Linux 6.0.4。 Python版本是Python 2.6.6。我认为相关,sys.getfilesystemencoding()
在服务器上返回'ANSI_X3.4-1968',在OSX上返回'UTF-8'。
我尝试添加.encode('utf-8')和各种其他组合,但是,虽然我可以删除错误,但它只是用乱码替换非ascii字符。
非常感谢任何帮助。