如何处理降价中的特殊字符?

时间:2012-10-05 13:13:58

标签: escaping markdown diacritics multimarkdown

我刚刚发现了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>

由于我必须用德语写很多东西,所以不能手动输入转义序列。如何使用正确转义的特殊字符获取HTML输出?

3 个答案:

答案 0 :(得分:4)

我不知道这种情况是否适用于您,但请注意:

我对挪威字母'æ','ø'和'å'有同样的需求。我使用FireFox和附加的“Markdown Viewer”查看降价文档。

如果文档以普通方式保存,则在Markdown Viewer中查看挪威文档将呈现乱码。

使用西方(Windows 1252)编码保存文档会使文本正常(我也尝试使用您的德语字母)。

答案 1 :(得分:2)

据我所知,这是不可能的(虽然我很乐意被证明是错的)。我最近使用Markdown语法在Doxygen中生成文档,并且必须用&deg;替换所有°符号,这是一种耻辱,因为它违背了Markdown的理念,即使文本文件可读为生成输出。

答案 2 :(得分:2)

你想要的是告诉浏览器使用UTF-8编码,在这种情况下那些&#34;特殊&#34;字符将正确显示。可以通过在页面的<meta charset="UTF-8">部分添加<head>标记来强制执行UTF-8。

<!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>

字符集信息是

  • 您可以直接通过markdown引入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字符集。