Вывод CLI показывает � локально, но отлично работает на сервере - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь прочитать csv-файл, закодированный с помощью ISO-8859-1, с помощью этого кода

function file_get_contents_utf8($fn) {
     $content = file_get_contents($fn);
      return mb_convert_encoding($content, 'UTF-8',
          mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}

$csvData = file_get_contents_utf8("./example_files/file.csv") or die("Failed to load");

print_r($csvData);

Попробовав x раз с различными функциями, такими как iconv et c, и всегда получаю тот же результат с выводом, содержащим � вместо æ / ø / å, я попытался запустить код на компьютере моего коллеги и на сервере, и оба работали отлично, возвращая правильные символы.

Итак, мой вопрос, каковы некоторые причины этого может не работать на моем компьютере?

EDIT

Я и мой коллега используем ma c. Сервер убунту. Csv-файл отображает символы правильно с кодировкой windows1252 в возвышенном, но не с кодировкой windows1252 в vscode.

$ LC_CTYPE выводит UTF-8

шестнадцатеричный дамп: https://pastebin.com/9BBjkCKh

...