如何修复:“UnicodeDecodeError:‘ASCII’编解码器不能解码字节”

如何修复:“UnicodeDecodeError:‘ASCII’编解码器不能解码字节”

as3:~/ngokevin-site# nano content/blog/20140114_test-chinese.mkdas3:~/ngokevin-site# wokTraceback (most recent call last):
File "/usr/local/bin/wok", line 4, inEngine()File "/usr/local/lib/python2.7/site-packages/wok/engine.py", line 104, in init
self.load_pages()File "/usr/local/lib/python2.7/site-packages/wok/engine.py", line 238, in load_pages
p = Page.from_file(os.path.join(root, f), self.options, self, renderer)File "/usr/local/lib/python2.7/site-packages/wok/page.py",
 line 111, in from_file
page.meta['content'] = page.renderer.render(page.original)File "/usr/local/lib/python2.7/site-packages/wok/renderers.py", line 46, 
in renderreturn markdown(plain, Markdown.plugins)File "/usr/local/lib/python2.7/site-packages/markdown/init.py", line 419, in markdown
return md.convert(text)File "/usr/local/lib/python2.7/site-packages/markdown/init.py", line 281, in convert
source = unicode(source)UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 1: ordinal not in range(128). -- 
Note: Markdown only accepts unicode input!

怎么修?

在其他一些基于python的静态博客应用程序中,可以成功地发布中文帖子。比如这个应用程序:http://github.com/vrypan/bucket3..在我的网站上http://bc3.brite.biz/,中文文章可以成功出版。


holdtom
浏览 1613回答 3
3回答

一只甜甜圈

这是经典的“Unicode问题”。我认为,解释这一点超出了StackOverflow的范围,无法完全解释正在发生的事情。这是很好的解释这里.在非常简单的总结中,您已经将被解释为字节字符串的内容传递给需要将其解码为Unicode字符的东西,但是默认的编解码器(Ascii)正在失败。我指出的演示文稿为您提供了避免这种情况的建议。让您的代码成为“Unicode三明治”。在Python 2中,使用“FROM_WOWORY_IMPORT Unicode_TALLS”很有帮助。更新:如何修复代码:好的-在您的变量“源”中有一些字节。从你的问题上还不清楚他们是怎么进来的-也许你是从网上读到的?在任何情况下,它们都不是用ascii编码的,但是python正在尝试将它们转换为Unicode,假设它们是这样的。您需要显式地告诉它编码是什么。这意味着你需要知编码是什么!这并不总是容易的,这完全取决于这个字符串的来源。您可以尝试一些常见的编码,例如UTF-8。您可以将编码作为第二个参数告诉Unicode():source = unicode(source, 'utf-8')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python