Как обрабатывать специальные символы в уценке?

Я только открываю для себя Markdown и MultiMarkdown, и пока мне это нравится. Однако специальные символы не экранируются должным образом при экспорте в HTML и отображаются в браузере как мусор.

Пример:

How does Markdown handle special characters?
============================================

For example, German is full of ä, ö, ü and ß.

преобразуется в

<h1 id="howdoesmarkdownhandlespecialcharacters">How does Markdown handle special characters?</h1>

<p>For example, German is full of ä, ö, ü and ß.</p>

Поскольку мне приходится много писать по-немецки, вводить escape-последовательности вручную не вариант. Как я могу получить вывод HTML с правильно экранированными специальными символами?


person clstaudt    schedule 05.10.2012    source источник


Ответы (3)


Насколько мне известно, это невозможно (хотя я был бы рад оказаться неправым). Недавно я создавал документацию в Doxygen, используя синтаксис Markdown, и мне пришлось заменить все символы на &deg;, что очень обидно, поскольку противоречит философии Markdown, которая заключается в том, чтобы сделать текстовые файлы такими же читаемыми, как и сгенерированный вывод.

person PeterByte    schedule 19.12.2012

Я не знаю, применим ли этот сценарий к вам, но вот:

У меня такая же потребность в норвежских буквах «æ», «ø» и «å». Я использую FireFox и надстройку Markdown Viewer для просмотра документов уценки.

При просмотре норвежского документа в Markdown Viewer буквы будут отображаться искаженными, если документ сохранен обычным образом.

Сохранение документа с использованием западной (Windows 1252) кодировки прекрасно отображает текст (я также пробовал с вашими немецкими буквами).

person JustAnotherCoder    schedule 28.04.2014
comment
Большое спасибо. Это решило мою проблему с акцентированными символами, написанными на португальском языке. - person Homero Esmeraldo; 15.04.2017

Что вы хотите, так это указать браузеру использовать кодировку UTF-8, и в этом случае эти «специальные» символы будут отображаться правильно. UTF-8 можно применить, добавив тег <meta charset="UTF-8"> в раздел страницы <head>.

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>

<body>
<h1 id="howdoesmarkdownhandlespecialcharacters">How does Markdown handle special characters?</h1>
<p>For example, German is full of ä, ö, ü and ß.</p>
</body>
</html>

Информация о кодировке

  • Либо введенный вашим конвертером уценки в html напрямую: например, это то, что делает pandoc, когда кто-то вызывает
    pandoc -o index.html index.md --standalone
    где index.md содержит исходный код уценки OP,
  • Или вы можете ввести тег <meta charset="UTF-8"> вручную после создания файла *.html,
  • Или используемый вами конвертер уценки в html может предоставить возможность вставки контента (в нашем случае тега <meta>) в раздел <head>. В случае pandoc это будет опция -H, также известная как --include-in-header, хотя в этом нет необходимости, поскольку pandoc по умолчанию указывает кодировку UTF-8.
person Gael Lorieul    schedule 22.05.2018