使用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时,我可以看到输入。所以我不明白为什么它没有这样渲染。
答案 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导致我找到了解决方案。