Можно ли сделать markdown2.py как utf-8? - PullRequest
0 голосов
/ 27 декабря 2018

При преобразовании текста в кодировке utf-8 в html с использованием markdown2.py результат кодируется в формате 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)

Если я вручную преобразую в utf-8 с помощью Notepad ++, все в порядке.

Кратко поглядывая на код markdown2, я вижу ввод, когда предполагается, что read - utf-8.Поэтому я не понимаю, почему он не отображается как таковой.

1 Ответ

0 голосов
/ 28 декабря 2018

TL; DR Установите системную переменную PYTHONIOENCODING на utf-8.

Объяснение : Чтобы сделать это в Windows 10, нажмите клавишу Windows, введите environment и запустите Изменить переменные среды для вашей учетной записи .Нажмите New и установите Name of на PYTHONIOENCODING и Value на utf-8, кавычки отсутствуют.Сохранить.Если вы сделаете это, Windows сохранит этот параметр.

В коде Markdown2 эти строки записывают файл в моем случае (Python 3).

if py3:
    sys.stdout.write(html)

Поиск в Google Python sys.stdout.write utf8 привел меня к этому вопросу на SO , где этот ответ привел меня к решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...