Правильно отформатированный файл UTF8 может иметь метку порядка байтов в качестве первых трех октетов. Это шестнадцатеричные значения 0xEF, 0xBB, 0xBF. Эти октеты служат для пометки файла как UTF8 (поскольку они не относятся к информации «порядка байтов»). 1 Если эта спецификация не существует, потребитель / читатель должен определить тип кодировки текста. Считыватели, не поддерживающие UTF8, будут считывать байты как некоторые другие кодировки, такие как Windows-1252, и отображать символы
в начале файла.
Существует известная ошибка, при которой Excel при открытии файлов CSV UTF8 через сопоставление файлов предполагает, что они находятся в однобайтовой кодировке, независимо от наличия спецификации UTF8. Это не может быть исправлено ни одной системной кодовой страницей или настройкой языка по умолчанию. Спецификация не будет подсказывать в Excel - она просто не будет работать. (В отчете меньшинства утверждается, что в спецификации иногда запускается мастер «Импорт текста».) Эта ошибка существует в Excel 2003 и более ранних версиях. Большинство отчетов (среди ответов здесь) говорят, что это исправлено в Excel 2007 и новее.
Обратите внимание, что вы всегда можете * правильно открыть файлы CSV UTF8 в Excel с помощью мастера «Импорт текста», который позволяет указать кодировку открываемого файла. Конечно, это гораздо менее удобно.
Читатели этого ответа, скорее всего, находятся в ситуации, когда они не поддерживают Excel <2007, но отправляют необработанный текст в формате UTF8 в Excel, который неправильно его интерпретирует и окропляет ваш текст Ã
другими аналогичными символами Windows-1252. Добавление спецификации UTF8, вероятно, является вашим лучшим и быстрым решением.
Если вы застряли с пользователями более старых версий Excels, и Excel является единственным потребителем ваших CSV-файлов, вы можете обойти эту проблему, экспортировав UTF16 вместо UTF8. Excel 2000 и 2003 дважды щелкнет, чтобы открыть их правильно. (Некоторые другие текстовые редакторы могут иметь проблемы с UTF16, поэтому вам, возможно, придется тщательно взвесить ваши варианты.)
* За исключением случаев, когда вы не можете, (по крайней мере) мастер импорта Excel 2011 для Mac не всегда работает со всеми кодировками, независимо от того, что вы говорите. </ anecdotal-доказательство> :)