У меня проблема с RSS-каналом.
Когда я делаю <title>This is a title </title>
Заголовок красиво отображается в ленте
Но когда я буду
$ title = "это наклон";
<title><![CDATA['$title']]></title>
Заголовок не отображается вообще.
<Ч />
Это все еще не работает. Я генерирую свой RSS-канал динамически, и это выглядит так:
$item_template="
<item>
<title>[[title]]</title>
<link>[[link]]</link>
<description><![CDATA[[[description]]]]></description>
<pubDate>[[date]]</pubDate>
</item>
";
и в цикле:
$s.=str_replace(
array("[[title]]","[[link]]","[[description]]","[[date]]"),
array(htmlentities($row["title"]),$url,$description,$date),
$item_template);
Проблема, в частности, в том, что в заголовке есть знак евро. Затем он появляется в моем валидаторе RSS вроде:
Â\x80
Более подробная информация:
Хорошо, я боролся с этим последние несколько дней, и я не могу найти решение. Так что я начну щедрость. Вот больше информации:
- Информация, которая идет в ленте, хранится в базе данных латиницы 1 (которую я администрирую)
- Проблема возникает при наличии знака евро в базе данных. Неважно, будет ли это как € или
€
- Знак евро иногда выглядит как странные символы или как \ x80
- Я пытаюсь решить проблему на стороне подачи, а не на стороне читателя.
- Полный код можно найти здесь: codedump
- Далее: иногда, когда знак евро невозможно проанализировать, элемент (заголовок или описание) отображается пустым. Поэтому, если вы посмотрите на источник при отображении канала в браузере, вы найдете
<title></title>
Если вам нужна дополнительная информация, пожалуйста, спросите.