来自MySQL的RSS - 特殊字符问题

时间:2014-03-03 13:22:21

标签: php mysql xml rss feed

<?php
    header('Content-type: text/xml; charset=utf-8');
    DEFINE ('DB_USER', 'root');   
    DEFINE ('DB_PASSWORD', '');   
    DEFINE ('DB_HOST', 'localhost');   
    DEFINE ('DB_NAME', 'rss'); 
    $output  = '<?xml version="1.0" encoding="UTF-8"?>';
    $output .= '<rss version="2.0">';
    $output .= '<channel>';
    $output .= '<title>Feed Demo</title>';
    $output .= '<description>News Feed from MySQL test.</description>';
    $output .= '<language>de</language>';

    $connection = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('-');
    mysql_select_db(DB_NAME) or die ('-');

    $query = "SELECT * FROM entry ORDER BY date DESC";
    $result = mysql_query($query) or die ('-');

    while($row = mysql_fetch_array($result)) {
        extract($row);
        $output .= '<item>';
            $output .= '<title>' . $title . '</title>';
            $output .= '<description>' . $description . '</description>';
            $output .= '<link>' . $link . '</link>';
            $output .= '<pubDate>' . date("d. F Y, H:i", strtotime($date)) . '</pubDate>';
        $output .= '</item> ';
    } 

   $output .= '</channel>';
   $output .= '</rss>';

    echo($output);
?>

您好! 我正在使用上面的代码从MySql数据库生成rss-feed。它工作得非常好,直到我在条目中添加特殊字符,例如:,/,ä,ö,ü,ß,?,“等等。 我收到了消息

  

此页面包含以下错误:

     第377行第1行的

错误:编码错误   具有特殊字符的行前的所有内容都会正确显示。

1 个答案:

答案 0 :(得分:0)

您应该使用utf8_encode()对所有值进行编码。

类似的东西:

while($row = mysql_fetch_array($result)) {
    extract($row);
    $output .= '<item>';
        $output .= '<title>' . utf8_encode($title) . '</title>';
        $output .= '<description>' . utf8_encode($description) . '</description>';
        $output .= '<link>' . $link . '</link>';
        $output .= '<pubDate>' . date("d. F Y, H:i", strtotime($date)) . '</pubDate>';
    $output .= '</item> ';
}