Как я могу вывести UTF-8 CSV на PHP, который Excel будет правильно читать?

У меня есть очень простая вещь, которая просто выводит некоторые данные в формате CSV, но это ' s должен быть UTF-8. Я открываю этот файл в TextEdit, TextMate или Dreamweaver, и он правильно отображает символы UTF-8, но если я открою его в Excel, он будет делать такие глупые вещи. Вот что у меня в начале моего документа:

header("content-type:application/csv;charset=UTF-8");
header("Content-Disposition:attachment;filename=\"CHS.csv\"");

Кажется, все это дает желаемый эффект, за исключением того, что Excel (Mac, 2008) не хочет импортировать его должным образом. В Excel нет возможности «открыть как UTF-8» или что-то в этом роде, так что… я немного раздражаюсь.

Я не могу найти никаких четких решений для этого нигде, несмотря на множество людей такая же проблема. Больше всего я вижу включение спецификации, но я не могу точно понять, как это сделать. Как вы можете видеть выше, я просто повторяю эти данные, я не пишу никаких файлов. Я могу это сделать, если мне нужно, я ' m просто не потому, что в этом нет необходимости. Любая помощь?

Обновление: я попытался повторить BOM как echo pack ("CCC", 0xef, 0xbb, 0xbf); , который я только что взял с сайта, который пытался обнаружить BOM. Но Excel просто добавляет эти три символа в самую первую ячейку при импорте и по-прежнему портит специальные символы.

181
задан pnuts 3 September 2015 в 17:29
поделиться