Как различить кодировки MacRoman и Windows-1251 в PHP? - PullRequest
2 голосов
/ 26 апреля 2011

Я дергаю себя за волосы уже несколько дней.Я гуглил и переполнял стек, но безуспешно.

Я импортирую некоторые данные из CSV-файла.Этот CSV-файл создается в Excel либо на Windows, либо на Mac, что дает 2 разных кодировки «Windows-1251» и «MacRoman».Оба варианта из ISO-8859-1 и mb_detect_encoding не помогают: он всегда определяет первую кодировку, которую я помещаю в список.

Например:

mb_detect_encoding($buffer, 'macroman, windows-1251, UTF-8');

Даст "macroman".

С той же строкой попытка:

mb_detect_encoding($buffer, 'windows-1251, macroman, UTF-8');

выдаст "window-1251".

Так как же вы можете правильно изменить ситуацию?Мне нужно преобразовать мою входную строку (содержимое файла csv) в utf-8 для вставки в БД.

Может быть, я что-то упустил?Как вам, ребята, обычно удается проанализировать CSV-файлы и правильно сохранить данные в БД (utf8).

Спасибо за любую подсказку!

1 Ответ

0 голосов
/ 27 апреля 2011

Я думаю, что единственный способ убедиться, что это обрабатывается должным образом, - это сначала определить процесс сохранения файла csv. Тогда вам просто нужно utf8_encode, что входит, и все будет хорошо ...

...