1

我有一个 python 2.7 脚本,它使用 xhtml2pdf 库从 .html 导出到 .pdf

当我从 IDLE 或 Visual Studio 2013 运行脚本时,该脚本运行良好。但是,当我尝试从 dos 窗口或计划任务执行它时,我收到错误:

'ascii' codec can't decode byte 0xa0 in position 6: ordinal not in range(128)

导致错误的代码行是:

                import xhtml2pdf.pisa as pisa
                pdf = pisa.CreatePDF(
                    file( TargetFileDest + "\\" + target_file + ".html", "r"),
                    file( TargetFileDest + "\\" + target_file + ".pdf", "wb"),
                    log_warn = 1,
                    log_err = 1,
                    path = os.path.join(os.getcwd(),  TargetFileDest + "\\" + target_file + ".html")
                    )

该错误似乎是一个 unicode 问题,但如果我无法在调试模式下发生错误,我不知道如何调试它。任何建议,将不胜感激。

4

1 回答 1

2

我以前见过这个。发生的事情是 IDLE 和 VS 都具有与使用 ASCII 的命令行不同的字符集(我认为是 UTF-8)。

尝试chcp 65001在命令行中启动 python 程序之前运行,看看是否有效。

于 2015-04-13T21:15:51.600 回答