2015-04-13 1 views
1

У меня есть Python 2.7 скрипт, который использует библиотеку xhtml2pdf экспортировать из .html в формате .pdfPython ошибка сценария во время нормального выполнения, но не во время отладки

Скрипт работает нормально, когда я запускаю его из любого IDLE или Визуальное Студия 2013. Однако, когда я пытаюсь запустить его из окна дос или от запланированного задания я получаю ошибку:

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

строка кода, trows ошибки является:

   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, но я не знаю, как ее отладить, если я не могу получить ошибку в режиме отладки. Мы ценим любые предложения.

ответ

1

Я видел это раньше. Случается, что IDLE и VS имеют разные наборы символов (UTF-8, я думаю), чем в командной строке, которая использует ASCII.

попробуйте запустить chcp 65001 перед запуском программы python в командной строке, посмотрите, работает ли это.

+0

То же самое результат может быть – Dowlers

+0

Других вещей, которые я хотел бы попробовать; измените 'r' на 'rb' и вставьте 'decoded_str = html.decode (" windows-1252 ") encoded_str = decoded_str.encode (" utf8 ")' –

+0

Спасибо за вашу помощь в этом. Где я могу добавить инструкции декодирования и кодирования? Должен ли я делать их в html-файле, который я открываю? – Dowlers

Смежные вопросы