mysql — эквивалент Node.js для htmlspecialchars в переполнении стека

Я на самом деле получаю данные из моей базы данных MySQL, в которой есть текст с акцентами, как

«é è à â ê …»

но когда я отрисовываю его в свой файл ejs с помощью node.js, он показывает

«h lo» для «hélo»

.
Проблема легко решается с помощью PHP и функции htmlspecialchars(str);
есть ли эквивалент для этой функции в Node?

Спасибо

-2

Решение

Прежде всего, если вы правильно установили кодировку (на странице html и в базе данных или конвертировали перед вставкой / после выбора), вам не нужно преобразовывать специальные символы в сущности HTML, чтобы избежать описанного поведения. htmlspecialchars() следует использовать, чтобы запретить людям публиковать HTML < а также > в &lt; а также &gt;).

Если вам все еще нужно экранировать специальные символы HTML, взгляните на этот пакет NPM: https://www.npmjs.com/package/html-entities

Используйте это так:

const Entities = require('html-entities').AllHtmlEntities;
const entities = new Entities();

console.log(entities.encode("éèàâê");

будет выводить

&eacute;&egrave;&agrave;&acirc;&ecirc;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]