【发布时间】:2019-03-28 17:11:34
【问题描述】:
我实际上是从我的 mysql 数据库中获取数据,其中包含带有重音符号的文本,例如
" é è à ê..."
但是当我使用 node.js 将它渲染到我的 ejs 文件时,它会显示给我
“hélo”代表“hélo”
。
问题是使用 php 和函数 htmlspecialchars(str); 的 easyli 求解器
这个功能在 Node 中有没有等价物?
谢谢
【问题讨论】:
-
PHP 的
htmlspecialchars对此无济于事。你需要htmlentities。 (如果问题出在 PHP 和浏览器之间,它只会解决问题,如果问题出在 PHP 和 MySQL 之间,或者如果数据首先以损坏的状态放入数据库,则无济于事)。 -
你真的应该通过规范化你的字符编码(并在任何地方使用 UTF-8)来解决这个问题。
-
试试这个:
Buffer.from(str).toString('utf8')。但我认为您的服务器端 Web 应用程序不返回 utf-8 编码标头,express框架在调用res.render()之前尝试调用:res.charset = 'utf-8';否则我怀疑使用utf-8编码存储在具有@ 的表列中的数据987654329@编码