Esportare da Excel a TXT UTF-8

Spesso e volentieri i clienti ci fornisco dati da importare nei database sotto forma di file Excel.

Uno dei formati migliori per esportare i dati da Excel, ai fini dell’importazione in un db, è il formato Testo delimitato da tabulazione: è facile da leggere da codice, non contiene odiose virgolette che racchiudono i valori e che vanno tolte, non prevede escaping di caratteri particolari… insomma non male.

Tuttavia se si esporta semplicemente il file da Excel a Testo delimitato da tabulazione si ottiene un file in formato ANSI, mentre al giorno d’oggi i database utilizzano quasi sempre la codifica UTF-8.

Questa differenza può causare diversi fastidi nel momento in cui effettuiamo l’importazione, sia che si utilizzino tool già pronti, gratuiti o a pagamento, sia che si preferisca realizzare un piccolo script ad hoc (ad es. in PHP, che per lavori di importazione dati è particolarmente versatile).

Come fare quindi a esportare da Excel a TXT UTF-8?

Una soluzione che non funziona…

Cercando su internet ho trovato un sito che suggerisce, al momento di salvare in formato testo da Excel, di cambiare la codifica attraverso il pulsante Strumenti | Opzioni Web, scheda Codifica. Ho provato ad impostare questa opzione e… niente, il file ottenuto è sempre ANSI, come è facile verificare aprendolo con Notepad++. Per lo meno questo è il risultato che ho ottenuto col mio vetusto, ma sempre funzionale, Excel 2007.

…e una che dà il risultato voluto

Alla fine, dopo un paio di tentativi, ecco la procedura che per me ha funzionato:

  1. esportare il file da Excel come Testo Unicode (anzichè Testo delimitato da tabulazione); il delimitatore usato sarà sempre lo stesso ma la codifica dei caratteri sarà corretta;
  2. aprire il file TXT ottenuto con Notepad++: si vedrà in basso a destra che la codifica prodotta da Excel è la UCS2 LE BOM (prima volta che la vedi? Anch’io!);
  3. selezionare da menu Formato | Converti in UTF-8;
  4. salvare il file TXT.

Abbiamo finalmente ottenuto un’esportazione corretta da Excel a TXT UTF-8 e possiamo ragionevolmente sperare che le importazioni nel nostro database con pari codifica non ci daranno grattacapi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *