Я знаю, что некоторые люди подумают, что это дублирующий вопрос, но я перепробовал все решения, предоставленные в stackoverflow.
Моя проблема в том, что я не могу показать некоторые символы в CSV при открытии в Excel, однако notepad++
показывает это правильно.
Выход Notepad ++:
Выход в Excel:
Я знаю, что некоторые парни предложат мне показать некоторые заголовки & так, но я просто сохраняю этот CSV на сервер. Пользователь будет загружать его по FTP, когда это необходимо.
Если вам нужен способ программирования для этого, тогда лучше всего добавить символ BOM в самом начале вашего CSV-файла. Последние версии Excel (Excel 2007 с пакетом обновления 3 (SP3) или более) интерпретируют этот символ спецификации как индикатор того, что остальная часть файла находится в UTF-8, и загружают его правильно.
Вот код PHP для этого:
// generate $csv_content as usual
// fopen the file you want to write to in $csv
$BOM = "\xEF\xBB\xBF";
fwrite($csv, $BOM . $csv_content);
fclose($csv);
Это потому, что кодировка символов для вашего файла — UTF-8. Notepad ++ правильно его обнаруживает, но Excel не распознает кодировку символов и предполагает, что все находится в локальной кодировке Windows.
Выполните действия, описанные ниже, чтобы использовать Microsoft Excel 2007 для открытия файла .csv, который использует кодировку символов UTF-8: