Node.js等效于php中的htmlspecialchars

i'm actually getting data from my mysql database in which there is text with accents like

" é è à â ê... "

but when i render it to my ejs file with node.js it shows me

"h�lo" for "hélo"

. The problem is easyli solver with php and the function htmlspecialchars(str); is there any equivalent for this function in Node ?

Thank you

First of all, if you set your encoding correctly (on the html page and in the database or convert before inserting/after selecting) you shouldn't need to convert special chars to HTML entities to avoid the described behaviour. htmlspecialchars() should be used to prevent people from posting HTML (converting < and > to &lt; and &gt;).

If you still need to escape HTML special characters, take a look at this NPM package : https://www.npmjs.com/package/html-entities

Use it like this :

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

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

will output

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