我正在用 PHP 构建一个 RSS 提要聚合器/阅读器。由于 RSS 本质上是用户生成的内容,因此我不想依赖提要内容的安全性。
我正在寻求有关清理供稿内容以便在用户设备上存储和显示的建议。目前,我正在使用 htmlentities(feed_content) 转义所有字符,但这不起作用,因为它 UTF-8 编码的字符无法在 Javascript 中解码(我用于前端构建) .
- Original: "Soundtrack: Dinosaur Jr. - Don’t Pretend You Didn’t Know I hadn’t thought much..."
- After htmlentities: "Copyright-Infringing Tweets Will Now Be “Withdrawn” Instead of “Disappeared..."
- After JS decodeURI: "Copyright-Infringing Tweets Will Now Be “Withdrawn” Instead of “Disappeared..."
如果我删除上面的 htmlentities,文本将正确显示。但我不确定这是否是确保数据得到净化的正确方法
将正确的字符集传递给 htmlencode:
echo htmlentities($str, ENT_QUOTES, "UTF-8");
...但通常没有必要这样做。只需确保设置正确的 header ,以便浏览器正确解释为 utf8:
header('Content-Type: text/html; charset=utf-8');
或者如果您使用 json 加载:
header('Content-type: application/json; charset=utf-8');
Tôi là một lập trình viên xuất sắc, rất giỏi!