Я розробляю частину програми, яка відповідає за експорт деяких даних у файли CSV. Додаток завжди використовує UTF-8 через його багатомовність на всіх рівнях. Але відкриття таких файлів CSV (що містять, наприклад, діакритику, кириличні букви, грецькі літери) в Excel не дає очікуваних результатів, показуючи щось подібне Г„/Г¤, Г–/Г¶
. І я не знаю, як змусити Excel зрозуміти, що відкритий файл CSV закодований в UTF-8. Я також спробував вказати UTF-8 BOM EF BB BF
, але Excel це ігнорує.
Чи є якесь вирішення?
PS Які інструменти потенційно можуть вести себе так, як робить Excel?
ОНОВЛЕННЯ
Треба сказати, що я сплутав спільноту з формулюванням питання. Коли я задав це питання, я попросив спосіб відкриття файлу CSV UTF-8 в Excel без проблем для користувача, вільно і прозоро. Однак я використав неправильну рецептуру з проханням зробити це автоматично . Це дуже заплутано, і це стикається з макроавтоматизацією VBA. На це питання є дві відповіді, які я найбільше ціную: найперша відповідь Олексія https://stackoverflow.com/a/6002338/166589 , і я прийняв цю відповідь; а другий від Марка https://stackoverflow.com/a/6488070/166589які з’явилися трохи пізніше. З точки зору зручності використання, Excel, здавалося, не мав хорошої зручної підтримки CSV для UTF-8, тому я вважаю, що обидва відповіді є правильними, і я прийняв відповідь Алекса спочатку, оскільки він дійсно заявив, що Excel не зміг цього зробити. що прозоро. З цим я автоматично плутав тут. Відповідь Марка сприяє більш складним способом досягнення більш просунутих користувачів досягти очікуваного результату. Обидві відповіді чудові, але одна з Алекс трохи краще відповідає моєму не чітко визначеному питанню.
ОНОВЛЕННЯ 2
Через п'ять місяців після останньої редакції я помітив, що відповідь Алекса чомусь зникла. Я дуже сподіваюся, що це не було технічним питанням, і я сподіваюся, що більше немає дискусій щодо того, який відповідь зараз більший. Тому я приймаю відповідь Марка як найкращу.
\t
як роздільник. Працює в англійській та не англійській настройках Excel. Можна натиснути, Ctrl-S
не вибираючи формат файлу тощо. Збереже символи Unicode.