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

У меня есть файл уценки (utf8), который я превращаю в html-файл. Моя текущая настройка довольно проста (псевдокод):

var file = read(site.postLocation + '/in.md', 'utf8');
var escaped = marked( file );
write('out.html', escaped);

Это прекрасно работает, однако теперь я столкнулся с проблемой, когда в файле уценки есть специальные символы (например, é), которые искажаются при просмотре в браузере (é).

Я нашел пару модулей npm, которые могут конвертировать html-объекты, однако все они конвертируют почти все конвертируемые символы. Включая те, которые требуются для синтаксиса уценки (например, '#' становится '', а '.' становится '', и синтаксический анализатор уценки завершится ошибкой.

Я пробовал библиотеки entities и значок узла.

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


person askmike    schedule 18.03.2013    source источник
comment
Вы проверяли, может ли браузер правильно открывать символы в файле (без экранирования)   -  person user568109    schedule 18.03.2013
comment
Вы проверили тип содержимого в заголовке ответа? Некоторое время. Если тип содержимого подходит, вам не нужно кодировать специальный символ (é). А также убедитесь в наличии метатега (‹meta charset=UTF-8 /›) в html. Чтобы упростить отладку, просто отслеживайте необработанное значение символа в различных состояниях, например, перед чтением, после преобразования в html и т. д.   -  person HILARUDEEN S ALLAUDEEN    schedule 18.03.2013


Ответы (1)


Как указали hilarudeens, я забыл включить HTML-тег meta charset.

<meta charset="UTF-8" />

Если вы столкнетесь с подобными проблемами, я бы посоветовал вам сначала проверить это.

person askmike    schedule 11.05.2013