【发布时间】:2014-03-03 13:22:21
【问题描述】:
<?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。它工作得很好,直到我在条目中添加特殊字符,例如:,/,ä,ö,ü,ß,?” 等等。 我收到消息
此页面包含以下错误:
第 1 行第 377 列的错误:编码错误 带有特殊字符的行之前的所有内容都可以正常显示。
【问题讨论】:
-
告诉您的数据库您期望 UTF-8 字符串,因为您希望将 UTF-8 字符串输出到 XML:php.net/mysql_set_charset。除了使用 XML 库生成 RSS XML 之外,SimpleXML 就足够了:php.net/simplexml