Я читаю 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()