Есть файл, сохраненный в UTF-8 через команду file_get_contents получаю содержимое файла и показывает текст Код (Text): Компьютеры (Моноблоки) пробовал через iconv кодировать из UTF в windows-1251 = получаю пустоту. Что делать? Если файл сохранён в кодировке ANSCII - то все нормально.
У меня есть документ - http://demo9.savgroup.ru/uploads/catalog/_yml/1.xml Я его загружаю через функцию file_get_contents в переменную $xml_content Далее если просто написать echo $xml_content; то мне выдаст кракозябли вида Код (Text): Компьютеры (Моноблоки) Поэтому я пытаюсь сделать $xml_content = iconv("UTF-8", "WINDOWS-1251", $xml_content); и потом echo $xml_content; но выводит пустоту. Почему? сайт работает под кодировкой widnows-1251 и все PHP файлы в этой же кодировке. А вот XML - в UTF-8
1. наверняка генерируется предупреждение, которое ты не читаешь http://phpfaq.ru/debug внезапно может оказаться, что ты не ту переменную выводишь. или твоя исходная строка содержит невалидные символы. 2. можешь попробовать отбрасывать проблемные символы через //IGNORE , как в документации описано. тогда один "плохой" символ не испортит всю строку и наконец есть альтернатива: mb_convert_encoding. хотя iconv не может не работать )))
Если исходная строка это UTF-8 с BOM, то будет как раз такое предупреждение. Но "CP1251//IGNORE" должно работать. Где-то ручки шаловливые накосячили.
Код (Text): <?php @header( "Content-type: text/html; charset=WINDOWS-1251" ); $xml_content = file_get_contents ( "http://demo9.savgroup.ru/uploads/catalog/_yml/1.xml" ); ini_set('display_errors',1); error_reporting(E_ALL); $xml_content = iconv("UTF-8", "WINDOWS-1251//IGNORE", $xml_content); echo $xml_content; ?> вот так сделал, но русские символы все обрезались. Почему?
Что-то я не нашёл по адресу "http://demo9.savgroup.ru/uploads/catalog/_yml/1.xml" ни одного русского символа.
Смотрите, просто в PHP файле метод работает, а вот если я вставляю в скрипт свой, то пишет Notice: iconv(): Detected an illegal character in input string in Но ведь я вставляю код точь-в-точь.
вопрос. Почему на локале без ошибок такой скрипт работает, а на хостинге с ошибкой (которая в сообщении выше)? Какая настройка может влиять?