Как мне конвертировать CP-850 в UTF-8 с помощью PHP?
Что я нашел и попробовал
Суть — pedrosancao / CharsetConversion.php
Это кажется хорошим решением, но так как я работаю с большим количеством текста, чтобы изменить кодировку, это слишком медленно. Я запустил один процесс за 40 минут, изменив кодировку 1,5 мегабайта данных.
Я старался dos2unix -c iso -850 data.csv
, который конвертирует CP-850 в ASCII, но это не сработало.
Вы пробовали использовать iconv?
$ str = iconv («CP850», «UTF-8», $ str);
Опционально с транслитерацией (// TRANSLIT добавляется ко второму параметру).
Вторым предложением было бы использовать recode_file или recode_string; http://php.net/manual/en/ref.recode.php
Используйте iconv:
iconv -f CP80 -t UTF-8 data.csv > data-utf8.csv
Если вам нужно также преобразовать разрывы строк, вы делаете:
iconv -f CP80 -t UTF-8 data.csv | dos2unix > data-utf8.csv
dos2unix -c iso -850 data.csv
преобразует файл в ISO-8859-1 (латиница 1) в Windows, известной как CP1252.
Я в конечном итоге с помощью utf8_encode
, должен был попробовать это немного раньше.