fixmint
IT

Excel in CSV senza accenti rotti: UTF-8, BOM e separatori

Di · · 5 min di lettura

La maggior parte degli accenti rotti in un CSV deriva da una mancata corrispondenza di codifica: il file è salvato in UTF-8 ma aperto con una codifica di Windows. Esporta il foglio come CSV UTF-8, con un byte order mark (BOM) se a aprire il file sarà Excel, e scegli il separatore previsto dalle impostazioni regionali. Prima di esportare, formatta come testo le colonne come CAP e numeri di telefono, così gli zeri restano.

Excel in CSVTi serve un CSV, hai un file ExcelUsalo gratis

Perché "é" diventa "é"

Un carattere in un file è memorizzato come byte. In UTF-8 la lettera é occupa due byte, C3 e A9. Un programma che legge quei byte come Windows-1252, una codifica comune su Windows, vede il carattere à per C3 e © per A9. Così «café» appare come «café». Puoi verificarlo da solo: codificando é in UTF-8 e decodificando il risultato come Windows-1252 si ottiene «Ã©». Una ü, una ñ o una ö si rompono allo stesso modo.

La soluzione non è modificare i caratteri. È indicare al programma quale codifica usa il file.

UTF-8 e BOM

UTF-8 è la codifica standard per il testo sul web e nella maggior parte dei software moderni. Un normale file CSV non ha un campo che indichi la codifica usata, quindi i programmi la indovinano. Un byte order mark è una sequenza di tre byte all'inizio del file, EF BB BF, che segnala UTF-8 ai programmi che la cercano. Excel su Windows spesso apre un file UTF-8 senza BOM usando la propria codifica locale, quindi il BOM è la soluzione più comune.

Nelle versioni recenti di Excel, il menu Salva con nome offre l'opzione CSV UTF-8, che aggiunge il BOM. Puoi anche importare il file tramite Dati, Da testo/CSV, e impostare Origine file su 65001, UTF-8. Il BOM ha però un inconveniente: un programma che non se lo aspetta può considerarlo parte del nome della prima colonna. La maggior parte dei parser e dei fogli di calcolo lo gestisce, ma se un importatore di dati segnala un'intestazione strana, rimuovi il BOM.

Virgola o punto e virgola

CSV significa valori separati da virgola, e la specifica RFC 4180 descrive campi separati da virgole. In molti paesi, tra cui quelli che usano la virgola decimale come in 1,5 per uno e mezzo, il separatore di elenco di Excel è il punto e virgola. In tal caso un file separato da virgole aperto in Excel può dividersi male, e un numero come 1,5 diventa due campi.

Scegli il separatore che il programma di destinazione si aspetta. Lo strumento Excel in CSV offre virgola, punto e virgola e tabulazione. Se il file è destinato a un programma in un'area con virgola decimale, il punto e virgola è di solito la scelta più sicura.

Le date diventano numeri seriali

Excel memorizza le date come numeri seriali, contando i giorni da un punto di partenza. Nel sistema di date del 1900, il 1 gennaio 1900 è il seriale 1. Excel tratta inoltre il 1900 come anno bisestile, quindi conta un 29 febbraio 1900 che non è mai esistito come seriale 60. Così il 1 marzo 1900 è il seriale 61 e sposta di un giorno ogni data successiva. Il baco deriva da Lotus 1-2-3, e Microsoft ha mantenuto lo stesso sistema per compatibilità. Altri software possono leggere le date precedenti al 1 marzo 1900 con un giorno di differenza.

Quando esporti una data potresti vedere 44927 invece di 2023-01-01, oppure un giorno di differenza nelle date antiche. Lo strumento converte le date in testo leggibile. Se esporti a mano, formatta la colonna delle date come testo nella forma yyyy-mm-dd, che ogni programma legge allo stesso modo.

Gli zeri iniziali scompaiono

Un CAP come 02134 è un testo, ma Excel tratta un numero digitato come numero, quindi mostra 2134. Lo zero scompare dal foglio, e anche il CSV scritto da quel foglio non lo conterrà. I numeri di telefono che iniziano con 0 e i lunghi codici ID subiscono lo stesso problema. Anche i numeri molto lunghi possono perdere cifre, perché Excel conserva solo circa 15 cifre significative.

La soluzione è memorizzare quelle colonne come testo prima di inserire o importare i dati. Quando apri un CSV che ha già gli zeri, usa Dati, Da testo/CSV e imposta la colonna su Testo, invece di fare doppio clic sul file.

Regole sulle virgolette

RFC 4180 definisce il formato CSV comune. Le sue regole principali sulle virgolette sono:

  • Un campo che contiene una virgola, un doppio apice o un'interruzione di riga deve essere racchiuso tra doppi apici.
  • Un doppio apice dentro un campo tra virgolette si scrive come due doppi apici.
  • Nella specifica le righe terminano con CRLF, anche se la maggior parte degli strumenti accetta LF.

Per esempio, la riga "Müller, Anna","She said ""ok""" ha due campi: Müller, Anna e She said "ok". Il tipo MIME registrato da IANA per il CSV è text/csv.

RFC 4180 non ammette un doppio apice dentro un campo non racchiuso tra virgolette, e molti parser rifiutano una riga del genere o la dividono male. Racchiudi correttamente il campo, oppure rimuovi il carattere di troppo.

Una lista di controllo prima di esportare

  1. Esporta come CSV UTF-8, con BOM se a aprire il file sarà Excel.
  2. Scegli il separatore che il programma di destinazione si aspetta.
  3. Formatta come testo le colonne simili a ID, come CAP e numeri di telefono.
  4. Scrivi le date nella forma yyyy-mm-dd.
  5. Apri il file in un editor di testo semplice e controlla la prima riga e un campione di nomi con accenti.

Anche i caratteri nascosti, come gli spazi unificatori, possono causare errori di importazione. Lo strumento Rimuovi caratteri nascosti li trova e li elimina, e caratteri nascosti nel testo spiega da dove provengono. Una volta ripulito il file, CSV in JSON può convertirlo per uno sviluppatore, come descritto in CSV in JSON e viceversa.

Prima di esportare, vale la pena controllare le celle: il Controllo formule Excel elenca le formule che mostrano un errore o puntano a un altro file, ed esattamente quelle celle arrivano vuote in un CSV. Dopo l'esportazione, confronta i due fogli di calcolo per vedere cosa è cambiato tra le versioni.

Risposte rapide

Perché il file sembra corretto in un programma e rotto in Excel? Quando un file UTF-8 non ha il BOM, Excel su Windows può leggerlo con la propria codifica locale. Aggiungere il BOM, o importare selezionando UTF-8, risolve il problema.

Anche le versioni Mac di Excel hanno bisogno del BOM? Alcune fonti dicono di sì, quindi prova con un file che contiene un nome con accenti prima di inviarlo.

Posso correggere le date dopo l'esportazione? Sì, se sono ancora numeri seriali, ma è meglio esportarle già come yyyy-mm-dd fin dall'inizio.

Il mio foglio di calcolo viene caricato quando lo converto? Lo strumento funziona nel browser, quindi il file viene elaborato sul tuo dispositivo. Puoi verificarlo con la guida per controllare se uno strumento online carica i file.

Tradotto dal Originale in inglese con l'assistenza dell'IA.

Commenti

    Nessun commento per ora. Sii il primo.

    La tua valutazione (facoltativa)

    La tua email non viene mai mostrata né conservata.

    Copertina di Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Perché i dataset pubblici, gratuiti e aperti plasmeranno l'intelligenza artificiale generale tanto quanto gli algoritmi e la potenza di calcolo.

    $4.99Acquistalo su GumroadIn inglese