Специальные символы не отображаются в выводе pandoc html

Я пытаюсь заставить специальные символы (для иностранных фамилий) работать в pandoc. Я выполнил инструкции здесь и убедился, что все специальные символы представлены с использованием кодировки UTF (согласно эта страница. Я выбрал вариант HTML Entity (десятичный). итоговые файлы хорошо работают при преобразовании в docx или pdf, но не в html. Есть ли кодировка, которая будет работать для всех трех типов вывода, или мне нужно включить какой-либо другой вариант?

Вот строка кода уценки для преобразования с использованием специальной кодировки символов

some example text with special characters Å, ä, ö

который должен печататься как

пример текста со специальными символами Å, ä, ö

команды pandoc

pandoc example.md -o example.docx  # Works

pandoc example.md -o example.pdf   # Works

pandoc example.md -o example.html  # Doesn't work

запуск через inconv не изменяет поведение вывода

iconv -t utf-8 example.md | pandoc -o example.html  # Doesn't work

person user2603493    schedule 20.01.2014    source источник


Ответы (4)


Пытаться

pandoc example.md -s -o example.html

вместо. Дополнительный -s (для «автономный») заставляет pandoc вставлять необходимые метаданные для создания полного HTML-файла, а не только HTML-фрагмента, который напрямую соответствует тексту в example.md. Как часть метаданных, pandoc также генерирует информацию о том, что файл закодирован в UTF8. Эта информация нужна вашему браузеру для правильного отображения специальных символов.

Если по какой-то причине вы не можете использовать флаг -s, обязательно сообщите браузеру о UTF8 другим способом.

person Toxaris    schedule 12.02.2014
comment
Не работает, если есть китайские иероглифы UTF-8. Пришлось прибегнуть к кодировке текста в браузере. - person kakyo; 24.05.2018
comment
бесполезно, если вы используете summary.md, а не автономный - person conteh; 09.01.2019

Добавьте следующее в _layouts / default.html в теге при использовании summary.md, и вы не сможете использовать -s для автономного использования.

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
person conteh    schedule 09.01.2019

Вы также можете использовать параметр --ascii для создания вывода в чистом формате ascii со специальными символами, закодированными как объекты.

person Tobias Otto    schedule 20.04.2021

В index.html измените data-charset = iso-8859-15 на data-charset = utf-8, например:

    <section
data-markdown="slides/demo.md"
          data-separator="\n---\n"
          data-separator-vertical="^\n\n"
          data-separator-notes="\n> >"
          data-charset="utf-8">
</section>
person Jane    schedule 16.05.2021
comment
Добро пожаловать в StackOverflow! Можете рассказать, как был сгенерирован этот код? Не похоже, что это было сделано pandoc. - person tarleb; 16.05.2021