1

我正在用 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,文本会正确显示。但我不确定这是否是确保数据被清理的正确方法

4

1 回答 1

1

将正确的字符集传递给 htmlencode:

echo htmlentities($str, ENT_QUOTES, "UTF-8");

...但通常没有必要这样做。只需确保设置正确的标头,以便浏览器正确解释为 utf8:

header('Content-Type: text/html; charset=utf-8');

或者如果您使用 json 加载:

header('Content-type: application/json; charset=utf-8');
于 2013-04-17T19:08:09.190 回答