Intereting Posts
Laravel: как получить пользовательскую сортированную красноречивую коллекцию, используя метод whereIn Не загружать расширение Firebird Как добавить xml-данные в xml-файл без перезаписи существующих данных с помощью php? Сортировка Magento 1.7 по заказу – проблемы с бестселлерами Экспорт / Загрузка таблицы HTML-PHP в файл Excel Будет ли когда-либо соответствовать ударным символам в PREG / PCRE? Laravel 5 – Очистить кеш на сервере общедоступного хостинга Как добавить активные состояния и значки в wordpress wp_nav_menu () Как предотвратить запуск скрипта PHP более одного раза? Конкатенация __DIR__ константа со строкой в ​​виде значения массива, являющегося членом класса в PHP Добавить контактную форму ajax с shortcode в wordpress Проблема маршрутизации с Slim framework PHP / SQL создает ссылки на следующую строку в базе данных Есть ли элемент стиля кода? Динамическое перемещение массива в PHP

Кодировка символов UTF8 Проблема при использовании mb_detect_encoding () с PHP

Я читаю rss-канал http://beersandbeans.com/feed/

В фидах говорится, что это формат UTF8, и я использую simplepie rss для импорта содержимого. Когда я захватываю содержимое и сохраняю его в $content я выполняю следующее:

 <?php header ('Content-type: text/html; charset=utf-8'); ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head><body> <?php echo $content; echo $enc = mb_detect_encoding($content, "UTF-8,ISO-8859-1", true); echo $content = mb_convert_encoding($content, "UTF-8", $enc); echo $enc = mb_detect_encoding($content, "UTF-8,ISO-8859-1", true); ?> </body></html> 

Затем это производит:

 ..... Camping: 2,000isk/day for 5 days) = $89 ..... ISO-8859-1 ..... Camping: Â Â 2,000isk/day for 5 days) = $89 ..... UTF-8 

Почему он выводит?

Не пытайтесь указать «UTF-8, ISO-8859-1» и посмотреть, какую кодировку он вам дает. Он может обнаруживать ISO-8859-1, потому что он последний в этом списке, а не фактическое кодирование строки.

Установите строгий режим в true в mb_detect_encoding() , см. http://www.php.net/manual/de/function.mb-detect-encoding.php#102510

Также попробуйте http://www.php.net/manual/de/function.mb-convert-encoding.php вместо iconv()