0

我知道以前有人问过这种问题,但对我没有任何帮助。

我正在尝试使用weasyprint. 这是我的代码;

htmlContent = py_str["htmlContent"]

HTML(string=htmlContent).write_pdf(target=response,
        stylesheets=[CSS(string=getCSS())])

但它不会生成任何 PDF。在调试时,我发现问题出在这个getCSS()返回 css 字符串的函数中。通过在控制台上打印此功能,我收到此错误

UnicodeEncodeError:“charmap”编解码器无法在位置 5042 对字符“\x91”进行编码:字符映射到 <undefined>

这是我从第 5040 行到第 5042 行的 CSS

.nav-pills > li {
   float: left;
 }

我发现的所有解决方案都与之相关,utf-8但我不明白utf-8在我的代码中在哪里使用它。我完全被困在这里。

任何形式的帮助将不胜感激。如果需要,我可以添加完整的 CSS。

更新

我试过以这些方式使用 encoding("utf-8") ;

HTML(string=htmlContent).write_pdf(target=response,
    stylesheets=[CSS(string=getCSS().encode("utf-8"))])

然后这个也是

 HTML(string=htmlContent, encoding="utf-8").write_pdf(target=response,
    stylesheets=[CSS(string=getCSS())])

但没有运气...

4

1 回答 1

0

任何面临这个问题并且没有像我这样对你有用的人..尝试禁用浏览器的扩展程序/附加组件。就我而言,我必须卸载 IDM,我的问题就消失了。现在我需要找出为什么它不能与 IDM 一起使用。但是暂时,我的问题已经解决了。

于 2018-07-05T13:12:56.830 回答