【发布时间】:2018-12-27 20:51:05
【问题描述】:
当使用markdown2.py 将 utf-8 编码的文本转换为 html 时,结果是 ASCII 编码的。如何告诉 markdown2 呈现 utf-8?
名为ff.md的示例输入文件:
Hallo, Bjørn Nößflögl
转换使用:
C:\Python37\python.exe C:\Python37\Scripts\markdown2.py ff.md
当我在编辑器 (Notepad++) 中打开结果时,它认为它是 ASCII。同样,当我使用flask 的render_template 渲染它时,它会在变音符号上崩溃。 (UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8 in position 12: invalid start byte)
如果我使用 Notepad++ 手动转换为 utf-8,一切都很好。
浏览一下 markdown2 代码,我可以看到假定 read 为 utf-8 时的输入。所以我不明白为什么它没有这样渲染。
【问题讨论】:
-
@snakecharmerb 感谢您的建议,但是在控制台中首先
chcp 65001然后转换文件仍将其呈现为 ASCII。 ö 变成\xf6(ASCII),而不是 '\xc3\xb6'。如果我厌倦了这种解决方法,我想我将不得不深入研究 markdown2.py。