Неправильно определена кодировка файла

На сервере Linux, если пользователь загружает файл CSV, созданный в MS Office Excel (таким образом, имея Windows 1250 [или же CP1250 или же ASCII если вы хотите] кодирование) все известные мне методы определения кодировки файлов возвращают неверные ISO-8859-1 (или же latin1 если хочешь) кодировка.

Это важно для преобразования кодировки в финал UTF-8,.

Методы, которые я попробовал:

  • кли
    • file -i [FILE] возврате изо-8859-1
    • file -b [FILE] возврате изо-8859-1
  • напор
    • vim [FILE] а потом :set fileencoding? возврате latin1
  • PHP
    • mb_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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]