Указанный ниже файл - это пример, выдаваемый ГУГЛ контактами для экспорта. Такие контакты переносятся в два клика с телефона на телефон.
По факту это вроде обычный CSV файл.
Когда я его открыл с помощь Хрома - хром сказал что это кодировка CP1252.
Попытавшись преобразовать его с помощью ICONV файл превратился в окончательную неразбериху.
Кто делал?
В данном случае я заранее не знаю какая кодировка входного файла, но хотелось бы работать с UTF-8 без ручных преобразований - скинул файл, запустил скрипт, получил файл на выходе.
Файл примера:
https://yadi.sk/d/3qr3MUmJsrqrr
Делаю вот так:
// get file
$content = file_get_contents($filename);
$content = mb_convert_encoding($content, 'UTF-8', 'CP1252');
UPDATED
Сделал mb_detect_encoding для всего, чего нашел.
Определило как ISO-8859-1.
Прямое преобразование с двумя известными кодировками все еще приводит к кракозяблам.
UPDATED2
Только что уехала крыша. Половина файла в ISO, а половина в UTF-8!!!
Гугл показывает нам образцы качества, красоты и элегантности!