Почему rst2html5 портит кодировки? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть программа на Python, написанная на UTF-8, что подтверждается PyCharm и Sublime Text.Он печатает символ фунта, £ (0xC2 0xA3), для реструктурированного текста:

enter image description here

Открытие реструктурированного текстового файла с помощью PyCharm иSublime Text выглядит отлично, и оба утверждают, что это UTF-8.

Проблема возникает, когда я генерирую HTML из этого файла с помощью rst2html5 , с помощью этой команды:

 rst2html5 --input-encoding=utf-8 --output-encoding=utf-8 foo.rst > foo.html

HTML-код претендует на UTF-8 посредством <meta charset="utf-8" />, но символы фунта £ теперь отображаются как ┬ú.Открытие его в Sublime Tex в формате UTF-8 также показывает ┬ú вместо £.Это фактические данные:

enter image description here

Есть идеи, что происходит или как это остановить?Это похоже на UTF-8 вообще?

Сгенерированный файл начинается так:

enter image description here

0xFF 0xFE напоминает мне о UTF-16 BOM , но установка заголовка на <meta charset="utf-16" /> не решает проблему и говорит текстовому редактору открыть файл, так как UTF-16 по-прежнему показывает не ASCII-символ с пробелами.

В случае необходимости моя активная кодовая страница Windows - 437.

1 Ответ

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

Проблема была вызвана перенаправлением PowerShell, а не самим rst2html5.Выполнение так:

 rst2html5 --input-encoding=utf-8 --output-encoding=utf-8 foo.rst foo.html

, который имеет тот же эффект, что и перенаправление (>), работал хорошо, и использование перенаправления на CMD также работало хорошо.

Если у кого-то есть дополнительная информация о том, почему PowerShell нарушает кодировку, было бы неплохо добавить сюда.

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