Здравствуйте, гуглил и думал полтора дня, так для себя решения и не нашел. Вообщем приходит переменная (например ) $str в кодировке по ходу CP866 мне нужно выполнить конвертацию в читабельные слова. пробовал так (посоветовали онлайн декодеры): Код (Text): $str='ъєяшЄ№ сєъхЄ ЎтхЄют'; $str=iconv('CP866','CP1251',$str); echo $str; но это отдает мне пустой результат. P.S. Конвертация происходит в файле с кодировкой utf-8 потом это пишется в файл с ANSI. Пожалуйста помогите...
Да я плохо еще с php обращаюсь, читал уже, не помогло, показывало utf-8 и Windows-1251 пробовал конвертировать, опять ничего, Покажите пожалуйста кто-нибудь работающий пример. Заранее Спасибо! Добавлено спустя 55 минут 6 секунд: Узнал по этой таблице http://habrahabr.ru/post/147843/ , что кодировка строки $str изначально была CP1251 а распозналась как CP866. Подскажите функцию, которая вернет правильный текст.
хрень в том, что ответ зависит от того, в какой кодировке ты смотришь исходник. редактор, откуда ты скопировал строку, на какую кодировку настроен? если я введу этот текст в редакторе, настроенном на CP866, то в консоли windows выведется "купить букет цветов" Код (PHP): <?php echo iconv('CP1251', 'CP866', 'ъєяшЄ№ сєъхЄ ЎтхЄют');
У меня создается эта строка и дальше записывается в файле utf8 Без BOM, то есть идет вырезание из url поискового запроса: Код (Text): if (stristr($referer, 'yandex.ru')) {$search = 'text=';$crawler = ' <sub><img src="img/icon_yandex.png" width="18" ></sub> Yandex';} // Расшифровка запроса if (isset($crawler)) { $phrase = urldecode($referer); mb_ereg($search.'([^&]*)', $phrase.'&', $phrase2); $phrase2 = $phrase2[1];} и именно с яндекса запросы на кириллице иногда становятся кракозябрами ($phrase2)... я думал написать условие: если в переменной встречается кракозябра, то конвертировать, но досих по не понял из чего во что. Редактор у меня notepad++.
Код (PHP): <?php // кодировка этого файла - UTF-8. // страница будет восприниматься браузером как UTF-8 header('Content-type: text/plain; charset=utf-8'); echo iconv('CP1251', 'UTF-8', iconv('UTF-8', 'CP866', 'ъєяшЄ№ сєъхЄ ЎтхЄют')); то есть сначала мы исправим неверное перекодирование, после чего текст станет правильной строкой в 1251. затем сконвертим в utf-8 для вывода. Добавлено спустя 2 минуты 15 секунд: p.s. мне бы тоже хотелось иметь функцию автоматического приведения кириллического текста к UTF-8