Вам нужно преобразовать строку в UTF8 также.
utf8_encode() не проверяет, в какую кодировку помещалась ваша строка, и иногда это дает вам испорченную строку, поэтому я сделал функцию под названием Encoding :: toUTF8(), чтобы сделать это правильно.
Вам не нужно знать, что такое кодировка ваших строк. Это может быть Latin1 (iso 8859-1), Windows-1252 или UTF8, или строка может содержать их. Кодирование :: toUTF8() преобразует все в UTF8.
Я сделал это, потому что служба давала мне поток данных, все испорченные, смешивая эти кодировки в одной строке.
Использование:
$utf8_string = Encoding::toUTF8($mixed_string);
$latin1_string = Encoding::toLatin1($mixed_string);
Я включил еще одну функцию кодирования :: fixUTF8(), которым будет фиксировать каждую строку UTF8, которая выглядит искаженным продукт того, закодированы в UTF8 несколько раз.
Использование:
$utf8_string = Encoding::fixUTF8($garbled_utf8_string);
Примеры:
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("FÃÂédÃÂération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
Выведет:
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Скачать:
http://dl.dropbox.com/u/186012/PHP/forceUTF8.zip
От где вы получите польские тексты? Если из базы данных вам нужно установить также кодировку базы данных после функции mysql_connect. – antyrat
Откуда берутся ваши данные? База данных? Убедитесь, что для соединения установлено значение UTF-8 (SET NAMES для MySQL). Hard-код? Убедитесь, что вы сохранили файл с кодировкой UTF-8. – igorw
спасибо! я сохранил файл с utf8 – Remy