通过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'))