通过pdfkit生成pdf时编解码器错误
Codec error when generating pdf via pdfkit
我正在尝试通过 pdfkit 库从 html 模板生成 pdf 文件。一切正常,希望使用本地字母表中的某些特殊字符(例如本例中的“Ž”)。然后出现以下错误:
UnicodeEncodeError: 'latin-1' codec can't encode character '\u017d' in
position 57: ordinal not in range(256)
代码:
if request.form['action'] == 'Print':
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
rendered = render_template('pdf.html')
pdf = pdfkit.from_string(rendered, False, configuration=config)
response = make_response(pdf)
response.headers['Content-Type'] = 'application/pdf'
response.headers['Content-Disposition'] = 'attachment; filename='filename.pdf'
return response
html模板中也定义了字符集:<meta charset="utf-8">
您知道什么是根本原因以及如何解决它吗?
问题已解决,我在 .\Python\Lib\http\server.py:
中将 'latin-1' 更改为 'utf-8'
def send_header(self, keyword, value):
"""Send a MIME header to the headers buffer."""
if self.request_version != 'HTTP/0.9':
if not hasattr(self, '_headers_buffer'):
self._headers_buffer = []
self._headers_buffer.append(
("%s: %s\r\n" % (keyword, value)).encode('utf-8', 'strict'))
我正在尝试通过 pdfkit 库从 html 模板生成 pdf 文件。一切正常,希望使用本地字母表中的某些特殊字符(例如本例中的“Ž”)。然后出现以下错误:
UnicodeEncodeError: 'latin-1' codec can't encode character '\u017d' in position 57: ordinal not in range(256)
代码:
if request.form['action'] == 'Print':
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
rendered = render_template('pdf.html')
pdf = pdfkit.from_string(rendered, False, configuration=config)
response = make_response(pdf)
response.headers['Content-Type'] = 'application/pdf'
response.headers['Content-Disposition'] = 'attachment; filename='filename.pdf'
return response
html模板中也定义了字符集:<meta charset="utf-8">
您知道什么是根本原因以及如何解决它吗?
问题已解决,我在 .\Python\Lib\http\server.py:
中将 'latin-1' 更改为 'utf-8' def send_header(self, keyword, value):
"""Send a MIME header to the headers buffer."""
if self.request_version != 'HTTP/0.9':
if not hasattr(self, '_headers_buffer'):
self._headers_buffer = []
self._headers_buffer.append(
("%s: %s\r\n" % (keyword, value)).encode('utf-8', 'strict'))