如何将html实体添加到RSS源

时间:2012-04-27 18:41:39

标签: php unicode rss html-entities

我对在RSS中显示的数据使用htmlentities,我有unicode字符,因此它们显示像Á这样的服务,如http://feedvalidator.org/这样的服务显示为无效。

如何将此实体添加到xml(如使用命名空间),还是应该使用不同的函数来转义& < >之类的字符?

2 个答案:

答案 0 :(得分:2)

使用htmlspecialchars转义XML中具有特殊含义的字符。

对其他字符使用正确的字符编码。

(略读htmlentities的文档表明,如果您不打算使用正确的字符编码,则可以传递ENT_XML1并获取XML兼容的数字实体。

答案 1 :(得分:2)

这是在php 5.3.3中运行的功能

function encode($string) {
    $result = '';
    foreach (str_split(utf8_decode(htmlspecialchars($string))) as $char) {
        $num = ord($char);
        if ($num > 127) {
            $result .= '&#' . $num . ';';
        } else {
            $result .= $char;
        }
    }
    return $result;
}