markdown2.py可以渲染为utf-8吗?

时间:2018-12-27 20:51:06

标签: python utf-8 markdown

使用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的{​​{1}}进行渲染时,它会在变音符号上崩溃。 (render_template

如果我用Notepad ++手动转换为utf-8,一切都很好。

简要浏览一下markdown2代码,当假设读取为utf-8时,我可以看到输入。所以我不明白为什么它没有这样渲染。

1 个答案:

答案 0 :(得分:1)

TL; DR 将系统变量PYTHONIOENCODING设置为utf-8。

说明:要在Windows 10中执行此操作,请按Windows键,键入environment,然后启动为您的帐户编辑环境变量。单击“新建”,将Name of设置为PYTHONIOENCODING,将Value设置为utf-8,注意不要引号。保存。以这种方式进行操作将使Windows保留该设置。

Markdown2代码中,这些行在我的情况下写入文件(Python 3)。

if py3:
    sys.stdout.write(html)

使用谷歌搜索'python sys.stdout.write utf8'导致我进入this question on SO,其中this answer导致我找到了解决方案。