Пользуюсь сборкой WP от maxsite, версией для UTF8
Сначала фид отображался нормально, настройки и параметры баз стояли по дефаулту хостера. Потом я решил все это дело забекапить. И оказалось, что UTF8 данные в базу у меня на SQL5 пишутся в формате UTF8 а сама база и таблицы в ней имеют свойства cp1251. Бекапы при этом без правильной установки collation получались исключительно кривые. Сделал я некривой бекап, потом пересоздал базу со свойствами UTF8 все перезалил обратно с UTF8 свойствами и включил в файле wp-db.php вот эти параметры:
$wpdb->query("SET NAMES ‘utf8’");
$wpdb->query("SET CHARACTER_SET_CLIENT=’utf8’");
$wpdb->query("SET CHARACTER_SET_CONNECTION=’utf8’");
$wpdb->query("SET CHARACTER_SET_RESULTS=’utf8’");
$wpdb->query("SET CHARACTER_SET_SERVER=’utf8’");
$wpdb->query("SET COLLATION_CONNECTION=’utf8_general_ci’");
$wpdb->query("SET COLLATION_SERVER=’utf8_general_ci’");
В результате у меня все работает нормально, нигде ничего нет битого, но появились проблемы с фидом:
http://mingan.dp.ua/feed/
И MSIE и FireFox выдают вот такую вот ошибку:
Invalid at the top level of the document. Error processing resource ‘http://mingan.dp.ua/feed/’. Line 1, Position 1
<?xml version="1.0" encoding="UTF-8"?>
^
Что это? 🙁 И как лечить это?
Это сообщение означает, что в rss присутствует какой-то мусор. Проверьте файлы wp-rss.php и wp-rss2.php – скорее всего в них неверно произведена кодировка в UTF-8. Нужно их пересохранить Блокнотом.
Или перескачайте или достаньте из архива еще раз эти два несчастных файла.
Перескачал "несчастные" файлы, перезаливал и в binary mode и в ASCII mode. Посмотрел на их нутро и в Блокноте и в FARе. Визуально мусора там нет
Не помогло 🙁
На сервере PHP 5.2 и SQL 5, то есть все самое последнее у хостера.
Вы попробуйте перезалить эти файлы на фтп, но перед тем не открывайте их. Возможно, шалит текстовый редактор. У иеня такое было с SciTE и UTF-8. Если Вы открыли файл и сохранили его, редактор мог в нем ещн чего-нибудь дорисовать, а визуально Вы этого и не увидите.
Взял файлики эти из дистрибутива. И ни разу их не открывая снова попробовал работу rss после заливки на ФТП их как в binary так и в text mode, не помогает 🙁 Упорно не помогает 🙁
Значит, какой-то другой файл неверно кодирован. Если есть TotalCommander, то на php-файле нажимаете F3, после этого 3 (режим шестнадцатеричный) и правом столбике смотрите наличие символов в самом начале файла (обычно до <?php ) – если ничего нет, значит все нормально. Если же есть какие-либо символы, значит это и есть мусор.