Sto sviluppando una parte di un'applicazione responsabile dell'esportazione di alcuni dati in file CSV. L'applicazione utilizza sempre UTF-8 a causa della sua natura multilingue a tutti i livelli. Ma l'apertura di tali file CSV (contenenti ad esempio segni diacritici, lettere cirilliche, lettere greche) in Excel non ottiene i risultati previsti mostrando qualcosa di simile Г„/Г¤, Г–/Г¶
. E non so come forzare Excel a capire che il file CSV aperto è codificato in UTF-8. Ho anche provato a specificare la distinta base UTF-8 EF BB BF
, ma Excel lo ignora.
C'è qualche soluzione?
PS Quali strumenti potrebbero comportarsi potenzialmente come Excel?
AGGIORNARE
Devo dire che ho confuso la comunità con la formulazione della domanda. Quando stavo ponendo questa domanda, ho chiesto un modo per aprire un file CSV UTF-8 in Excel senza problemi per un utente, in modo fluido e trasparente. Tuttavia, ho usato una formulazione sbagliata che mi chiedeva di farlo automaticamente . È molto confuso e si scontra con l'automazione delle macro VBA. Ci sono due risposte a questa domanda che apprezzo di più: la prima risposta di Alex https://stackoverflow.com/a/6002338/166589 e ho accettato questa risposta; e il secondo di Mark https://stackoverflow.com/a/6488070/166589che sono apparsi poco dopo. Dal punto di vista dell'usabilità, a Excel sembrava mancare un buon supporto CSV UTF-8 facile da usare, quindi ritengo che entrambe le risposte siano corrette e ho accettato la risposta di Alex prima perché affermava davvero che Excel non era in grado di fare quello in modo trasparente. Questo è ciò che ho confuso automaticamente qui. La risposta di Mark promuove un modo più complicato per gli utenti più avanzati di raggiungere il risultato atteso. Entrambe le risposte sono fantastiche, ma quella di Alex si adatta un po 'meglio alla mia domanda non chiaramente specificata.
AGGIORNAMENTO 2
Cinque mesi dopo l'ultima modifica, ho notato che la risposta di Alex è scomparsa per qualche motivo. Spero davvero che non sia stato un problema tecnico e spero che non ci siano più discussioni su quale risposta sia maggiore adesso. Quindi sto accettando la risposta di Mark come la migliore.
\t
come delimitatore. Funzionerà con impostazioni Excel inglesi e non inglesi. Può premere Ctrl-S
senza selezionare il formato del file, ecc. Conserverà i caratteri Unicode.