【发布时间】:2013-03-18 10:21:30
【问题描述】:
我有一个 markdown 文件 (utf8),我正在将其转换为 html 文件。我当前的设置非常简单(伪代码):
var file = read(site.postLocation + '/in.md', 'utf8');
var escaped = marked( file );
write('out.html', escaped);
这很好用,但是我现在遇到了一个问题,即 Markdown 文件中的特殊字符(例如é)在浏览器中查看时会变得混乱(é)。
我发现了几个可以转换 html 实体的 npm 模块,但是它们都转换了几乎所有可转换的字符。包括 markdown 语法所需的那些(例如 '#' 变成 '#' 和 '.' 变成 '.period;' 并且 markdown 解析器将失败。
我已经尝试了库 entities 和 node-iconv。
我想这是一个非常标准的问题。如何只替换所有奇怪的字母字符而没有所有 markdown 所需的符号?
【问题讨论】:
-
您是否测试过浏览器是否可以正确打开文件中的字符(不转义)
-
你检查过响应头中的内容类型吗?有时如果内容类型合适,那么您不必编码特殊(é)字符。并且还要确保 html 中的元标记()。为了便于调试,只需在读取前、转换为 html 后等各种状态下跟踪字符的原始值。