На сервере Linux, если пользователь загружает файл CSV, созданный в MS Office Excel (таким образом, имея Windows 1250 [или же CP1250 или же ASCII если вы хотите] кодирование) все известные мне методы определения кодировки файлов возвращают неверные ISO-8859-1 (или же latin1 если хочешь) кодировка.
Это важно для преобразования кодировки в финал UTF-8,.
Методы, которые я попробовал:
file -i [FILE]
возврате изо-8859-1file -b [FILE]
возврате изо-8859-1vim [FILE]
а потом :set fileencoding?
возврате latin1mb_detect_encoding(file_get_contents($filename))
возвращение (на удивление) UTF-8,в то время как файл действительно находится в WINDOWS-1250 (ASCII) как доказывает, то есть открытие CSV-файла в LibreOffice — Math запрашивает кодировку файла и выбирает любой из ISO-8859-1 или же UTF-8, приводит к неправильному представлению символов при выборе ASCII отображает все символы правильно!
Как правильно определить кодировку файла на сервере Linux (Ubuntu) (лучше всего, если это возможно, с помощью утилит Ubuntu по умолчанию или с PHP)?
Последний вариант, о котором я могу подумать, — это определить пользовательский агент (и пользовательскую ОС) при загрузке файла, и это окна затем автоматически предположить, что кодировка ASCII…
Задача ещё не решена.
Других решений пока нет …