通过Python的subprocess.Popen在Ubuntu服务器上编码wkhtmltopdf的问题

时间:2012-05-11 00:30:10

标签: python character-encoding debian wkhtmltopdf

我遇到了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字符。

非常感谢任何帮助。

0 个答案:

没有答案