'utf8' codec can't decode byte 0xe9 in position 30

position 30: invalid continuation byte. -- Note: Markdown only accepts unicode input!
Traceback (most recent call last):
  File "/Applications/calibre.app/Contents/Resources/Python/lib/python2.7/site.py", line 209, in main
    return run_entry_point()
  File "/Applications/calibre.app/Contents/Resources/Python/lib/python2.7/site.py", line 114, in run_entry_point
    return getattr(pmod, func)()
  File "site-packages/calibre/ebooks/conversion/cli.py", line 360, in main
  File "site-packages/calibre/ebooks/conversion/plumber.py", line 1198, in run
  File "site-packages/calibre/ebooks/conversion/plugins/pdf_output.py", line 145, in convert
  File "site-packages/calibre/ebooks/conversion/plugins/pdf_output.py", line 221, in convert_text
  File "site-packages/calibre/ebooks/conversion/plugins/pdf_output.py", line 172, in handle_embedded_fonts
  File "site-packages/calibre/ebooks/oeb/base.py", line 984, in fget
  File "site-packages/calibre/ebooks/oeb/base.py", line 918, in _parse_txt
  File "site-packages/calibre/ebooks/txt/processor.py", line 105, in convert_markdown
  File "site-packages/calibre/ebooks/markdown/__init__.py", line 280, in convert
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 30: invalid continuation byte. -- Note: Markdown only accepts unicode input!

怎么破

阅读 5.3k
5 个回答

你好歹要把出错的代码贴出来啊,你要别人猜你的代码吗?

Markdown only accepts unicode input!

提示很明显'utf8' codec can't decode byte 0xe9。猜测可能是latin字符集,可以用下面的方法转换。

In [18]: a = b'xe9'

In [19]: a.decode('latin').encode('utf8').decode('utf8')
Out[19]: 'é'

推荐问题