Как узнать кодировку данных, которые вы только что получили из какого-либо файла (csv, xls) или даже из $_GET-строки?
В PHP есть специальная функция mb_detect_encoding, но сходу она определит ерунду, инфа 100%
Мой способ работает следующим образом:
Определяется UTF-8 это или нет. То есть я рассматриваю случай, где стоит выбор между CP1251 и UTF-8.
Помогла мне страница http://php.net/manual/ru/function.mb-detect-encoding.php, а точнее комментарий..
итак решение:
$data = 'Текст для распознавания'; setlocale(LC_CTYPE, 'ru_RU'); $kodirovka = mb_detect_encoding($data, 'UTF-8', TRUE); if (!$kodirovka ){ $data=iconv('CP1251', 'UTF-8', $data); }