Perché il tuo CSV rovina accenti e date in Excel
Pubblicato il 10/07/2026 · 19 min di lettura · Strumenti per file
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso OneKitly
Performance web · Formati di file
Verificato su 5 fonti
Tre guasti distinti condividono una sola lamentela, e confonderli è il motivo per cui i consigli soliti falliscono. Primo, la codifica: un CSV scritto in UTF-8 senza indicatore dell'ordine dei byte viene letto su molte postazioni con la vecchia tabella codici di sistema, così i due byte che scrivono una lettera accentata compaiono come due caratteri Latin-1 invece di uno — perché diventa perché, e città diventa città con in coda uno spazio unificatore che non si vede. La documentazione di Microsoft dice che un CSV in UTF-8 si apre normalmente se è stato salvato con l'indicatore dell'ordine dei byte, e indica un percorso di importazione per tutto il resto; quell'indicatore occupa tre byte, EF BB BF, ed è per questo che tante esportazioni ne emettono uno. Secondo, il separatore: Microsoft documenta che Excel usa il separatore di elenco di Windows come delimitatore dei file .csv, e che la virgola è il valore predefinito delle impostazioni inglesi statunitensi. Dove la virgola è il separatore decimale, il separatore di elenco è il punto e virgola, quindi un file separato da virgole atterra in una sola colonna. Terzo, e nessuno può disfarlo dopo: Excel deduce un tipo per ogni campo mentre apre il file. Trasforma 03/04 in una data, toglie lo zero iniziale di un codice postale e — Microsoft lo dice chiaramente — conserva al massimo 15 cifre significative, così una referenza di 16 cifre viene arrotondata e mostrata in notazione scientifica. Mettere il campo fra virgolette non impedisce nulla di tutto ciò, perché in un CSV le virgolette sono strutturali e non dichiarazioni di tipo. L'unica cura affidabile è importare invece di aprire: Dati, poi Da testo/CSV, imposta la codifica su Unicode (UTF-8), imposta il delimitatore e porta a Testo le colonne che devono restare tali prima di caricare. Su Microsoft 365 ed Excel 2024 diverse di queste conversioni si disattivano anche in modo permanente in File, Opzioni, Dati.
Dietro la stessa frase si nascondono tre guasti completamente diversi. Uno è la codifica, uno il separatore, uno Excel che indovina i tipi mentre apre il file — e il rimedio è diverso per ciascuno. Ecco come distinguerli in cinque secondi.
Tre guasti, una sola lamentela
La frase che si scrive è sempre la stessa: il CSV è rotto. Quello che si intende è una di tre cose diverse, e le tre non hanno nulla in comune se non l'estensione del file. Gli accenti sono sbagliati: è un problema di codifica. È tutto nella prima colonna: è un problema di separatore. I valori sono giusti ma con la forma sbagliata — 03/04 è diventato una data, un codice postale ha perso lo zero, una referenza lunga si è trasformata in qualcosa con una E dentro — e questo non è né l'uno né l'altro: succede dopo che il file è stato letto correttamente.
Distinguerli richiede un solo gesto: aprire il CSV in un editor di testo semplice invece che in un foglio di calcolo. Blocco note, TextEdit, gedit, qualsiasi cosa mostri i byte come testo senza cercare di essere d'aiuto. In quella finestra non ci sono colonne, né celle, né tipi: solo righe con caratteri fra i campi. Se lì gli accenti sono corretti, il file è a posto e la colpa è tutta di come Excel lo legge. Se anche lì sono sbagliati, la colpa è a monte, in ciò che ha scritto il file, e nessuna impostazione di importazione la ripara.
Gli accenti: tre byte mancanti in testa al file
In UTF-8 una lettera senza accento occupa un byte e una accentata ne occupa due. È tutto qui il meccanismo. Quando un programma legge un file UTF-8 credendolo scritto in una vecchia tabella codici a un byte, mostra ciascuno di quei due byte come carattere a sé, e lo scempio che ne esce è del tutto deterministico. Perché diventa perché, Niccolò diventa Niccolò, più diventa più. E città diventa città con in coda uno spazio unificatore invisibile, che poi sopravvive al ritaglio degli spazi e fa fallire ogni ricerca su quella parola. Ogni lettera accentata cresce di esattamente un carattere, e il primo della coppia è quasi sempre una Ã.
Il rimedio su cui l'intero settore ha convergiuto sta in tre byte proprio in testa al file: EF BB BF, l'indicatore dell'ordine dei byte di UTF-8. Non codifica alcun carattere e non stampa nulla; esiste solo perché un lettore sappia che cosa sta guardando. La pagina di Microsoft sull'argomento lo dice in una riga — un CSV in UTF-8 si apre normalmente se è stato salvato con l'indicatore dell'ordine dei byte — e offre un percorso di importazione per quelli che ne sono privi. Quella sola frase spiega perché quasi tutti i pulsanti di esportazione che hai premuto producono un file che inizia con tre byte invisibili.
Il convertitore di questo sito non lo aggiunge. Il CSV che ti consegna è UTF-8 senza indicatore dell'ordine dei byte, e il primo byte del file è il primo carattere della tua prima intestazione di colonna. Dal punto di vista dello standard è la cosa giusta da produrre — l'RFC 4180 definisce il formato e non menziona mai un indicatore — ed è la cosa sbagliata su cui fare doppio clic su una macchina Windows europea. Il resto di questo articolo tratta in buona parte di cosa fare con questo fatto, e la versione breve è: importa il file invece di aprirlo.
Il separatore: decide il tuo sistema operativo, non il file
Il nome valori separati da virgola suggerisce che la virgola faccia parte del formato, e l'RFC 4180 lo definisce così. Excel non legge il formato: legge un'impostazione. La pagina di risoluzione dei problemi di Microsoft lo dice senza giri di parole: cambiare il separatore di elenco nelle impostazioni internazionali di Windows influisce sul delimitatore usato all'apertura e al salvataggio di un file di valori separati da virgola, perché Excel usa il carattere separatore di elenco di Windows come delimitatore dei file .csv. Aggiunge che la virgola è il separatore di elenco predefinito delle impostazioni inglesi statunitensi.
Che l'impostazione non sia una virgola dappertutto è una questione di aritmetica, non di gusto. Dove la virgola è il separatore decimale, non può in più separare i campi senza ambiguità: una riga con un prezzo di milleduecentotrentaquattro virgola cinque sarebbe indistinguibile da due campi. Windows fornisce perciò un punto e virgola come separatore di elenco nelle impostazioni francesi, tedesche, spagnole, italiane e portoghesi, e una virgola in quelle inglesi. È tutta qui la linea di frattura, ed è per questo che un'esportazione scritta da un servizio americano e aperta a Lione, Lipsia, León, Livorno o Lisbona arriva come una sola colonna larghissima.
Ne seguono due cose che spesso si fraintendono. La prima: cambiare il separatore di elenco di Windows per aggiustare un file è una modifica globale che riguarda ogni applicazione sulla macchina, e la documentazione di Microsoft stessa mette in guardia; non è un rimedio file per file e ti dimenticherai di averlo fatto. La seconda: il delimitatore è una proprietà del file e l'impostazione è una proprietà del lettore, quindi un file non è mai giusto o sbagliato in astratto — è giusto per un lettore a cui hai detto la verità. La finestra di importazione esiste proprio per permetterti di dirgliela.
I tipi: Excel indovina, e indovina mentre apre
Un CSV non ha tipi. Ogni campo è testo, e l'RFC 4180 assegna alle virgolette un unico compito: proteggere un campo che contenga una virgola, una virgoletta o un'interruzione di riga. In nessun punto del formato si può dire questa è una stringa, non toccarla. Quindi un foglio di calcolo che ne apre uno deve indovinare, campo per campo, e le supposizioni sono tagliate sul caso comune, non sul tuo. Un campo che vale 03/04 sembra una data e lo diventa. Un campo che vale 01234 sembra un numero e perde lo zero. Un campo di sedici cifre sembra un numero molto grande, e la pagina di Microsoft enuncia il limite senza addolcirlo: Excel ha una precisione massima di 15 cifre significative, quindi per qualsiasi numero di 16 cifre o più tutto ciò che segue la quindicesima viene arrotondato a zero e il valore è mostrato in notazione scientifica.
Il caso delle date merita un paragrafo a sé per il modo in cui fallisce. Un campo che vale 02/03/2026 è il 2 marzo a Roma e il 3 febbraio a Chicago, ed entrambe le letture sono legittime: nulla nel file dice quale fosse intesa. Ma un campo che vale 13/03/2026 non ha un tredicesimo mese, quindi un lettore che si aspetta il mese per primo non riesce a interpretarlo come data e lo lascia come testo. Fai passare un anno intero di date e quasi due su cinque sono ambigue: 144 dei 365 giorni cadono il dodici del mese o prima. La colonna che ne esce è in parte date scambiate in silenzio e in parte testo allineato a sinistra, senza un solo messaggio di errore. È il guasto silenzioso più costoso del lavoro d'ufficio.
Parte del danno avviene prima ancora che Excel entri in gioco, e questo convertitore non ne è innocente. Una cella di foglio di calcolo è un valore grezzo più un formato di visualizzazione, e il CSV può portare solo uno dei due: ciò che viene scritto è il testo formattato. Fai passare lo stesso 2 marzo 2026 con un formato giorno-prima e il file riceve 02/03/2026; fai passare il valore identico con un formato mese-prima e il file riceve 3/2/26. Peggio, un identificativo di sedici cifre in una colonna con formato generale esce dalla cartella già scritto come 1.23457E+15, perché era così che la cartella lo mostrava. L'identificativo l'ha distrutto il formato, non il lettore. Nulla a valle può recuperarlo.
Che cosa risolve davvero ciascun caso
Importare invece di aprire. Questa sola modifica risolve subito i primi due problemi e ti dà lo strumento per affrontare il terzo. Dati, poi Da testo/CSV, apre un'anteprima con l'origine del file e il delimitatore entrambi visibili e modificabili, e l'anteprima si ridisegna a ogni cambio: vedi gli accenti rimettersi a posto e le colonne separarsi prima di impegnarti. Scegliere Trasforma dati invece di Carica permette poi di fissare il tipo di una colonna su Testo — la guida di Microsoft sul conservare gli zeri iniziali indica esattamente questa via — e una colonna tipizzata come Testo conserva gli zeri, conserva tutte e sedici le cifre e non diventa una data.
C'è una leva più recente e più duratura che troppo pochi conoscono. Su Microsoft 365 ed Excel 2024, sia su Windows sia su Mac, File, Opzioni, Dati contiene una sezione chiamata Conversione automatica dei dati con quattro caselle: rimuovere gli zeri iniziali e convertire in numero; mantenere le prime 15 cifre dei numeri lunghi e mostrarli in notazione scientifica se necessario; convertire le cifre attorno alla lettera E in notazione scientifica; e convertire in data le combinazioni di lettere e numeri con aria di data. Togliere le prime due è il miglior impiego di dieci secondi per chiunque maneggi dati di riferimento, perché ferma la distruzione all'origine invece di chiederti di ricordare un rituale di importazione ogni volta.
Vale la pena elencare anche ciò che non funziona, perché sono i suggerimenti che ti daranno. Racchiudere un campo fra virgolette non ferma la conversione: le virgolette sono strutturali, dicono dove finisce il campo, ed Excel le toglie prima di iniziare a indovinare. Rinominare il file perché non sia più un .csv cambia il percorso di codice che lo apre, effetto reale ma fragile su cui appoggiarsi. Formattare la colonna come Testo a file già aperto non fa nulla, perché le cifre si sono perse durante il caricamento e Microsoft lo dice: un formato testo riguarda solo ciò che inserisci dopo. E mettere un segno di uguale davanti a un valore fra virgolette forza sì il testo, ma trasforma il campo in una formula anziché in un valore, appare come caratteri letterali in ogni altro programma che legga il file, e un segno di uguale iniziale è il vettore classico dell'iniezione di formule nei fogli di calcolo. Non mandarlo a nessuno.
Che cosa mette questo convertitore nel file
Letto dal codice sorgente invece che dal materiale promozionale: lo strumento Excel in CSV legge la tua cartella nel browser, ti lascia scegliere un foglio e scrive quel foglio con una virgola fra i campi, codifica UTF-8 e nessun indicatore dell'ordine dei byte. I campi vengono racchiusi fra virgolette solo quando serve — quando contengono una virgola, una virgoletta doppia o un'interruzione di riga — che è esattamente ciò che l'RFC 4180 richiede e niente di più. Un campo che contenga una virgoletta se la vede raddoppiata, per la stessa regola. Nulla viene caricato: la cartella è analizzata sulla tua macchina e il CSV non la lascia mai.
Due di queste scelte morderanno il lettore europeo che fa doppio clic sul risultato, ed è bene sapere quali. La virgola metterà tutto in colonna A su una macchina il cui separatore di elenco è il punto e virgola. L'assenza dell'indicatore dell'ordine dei byte rovinerà gli accenti su una macchina che ripiega su una vecchia tabella codici. Entrambe si curano con la stessa procedura di importazione e nessuna si cura lamentandosi del file, che è conforme allo standard. Se mandi il CSV a una persona e non a un programma, di' quale separatore e quale codifica hai usato: una riga nella mail risparmia un pomeriggio.
Un'abitudine vale più di tutte le impostazioni di questo articolo: sistema la cartella prima di esportarla, non il CSV dopo. Metti le colonne di identificativi su Testo dentro il foglio di calcolo, così che codici postali e numeri di conto siano già stringhe quando avviene la conversione. Metti le colonne di date in un formato non ambiguo — l'anno per primo, a quattro cifre, poi il mese, poi il giorno — così che il testo esportato non possa essere letto in due modi in nessuna impostazione internazionale del mondo. Fallo una volta, e ogni esportazione da quella cartella sarà pulita per ogni lettore, per sempre, quali che siano le sue impostazioni regionali.
| Che cosa vedi | Causa reale | Non lo risolve | Lo risolve |
|---|---|---|---|
| Lettere accentate mostrate come due caratteri | File UTF-8 letto come vecchia tabella codici; nessun indicatore dell'ordine dei byte che dica altro | Trova e sostituisci sulle coppie rovinate — moltiplica il danno | Importare con l'origine del file su Unicode (UTF-8), o riesportare con l'indicatore dell'ordine dei byte |
| Ogni riga sta in colonna A | Il delimitatore del file differisce dal separatore di elenco di Windows che Excel usa | Dividere la colonna a mano ogni volta che ricevi il file | Importare e scegliere il delimitatore nell'anteprima; cambiare l'impostazione di Windows è globale |
| 03/04 è diventato una data | Excel deduce un tipo per campo all'apertura; un CSV non porta tipi | Racchiudere il campo fra virgolette — sono strutturali e vengono tolte per prime | Importare e mettere la colonna su Testo; o esportare le date come anno, mese, giorno |
| Un codice postale ha perso lo zero iniziale | Sembrava un numero, quindi Excel ne ha fatto uno | Formattare la colonna come Testo dopo il caricamento — gli zeri sono già spariti | Importare come Testo, o disattivare Rimuovi zeri iniziali in File, Opzioni, Dati |
| Una referenza di 16 cifre finisce con zeri o mostra una E | Excel conserva 15 cifre significative; il resto è arrotondato a zero | Allargare la colonna o cambiare il formato numero — le cifre sono perse, non nascoste | Tenere la colonna come Testo ovunque: un identificativo è una stringa, non un numero |
| Un numero appare come 1,234.50 e si rifiuta di sommarsi | È stato esportato il formato di visualizzazione della cella, separatori compresi | Ridigitare i valori a mano nella destinazione | Togliere i formati numero nella cartella prima di esportare |
Domande frequenti
- Ho aperto il file e ogni riga sta in colonna A. Il CSV è rotto?
- Quasi certamente no. Quello che vedi è Excel che divide su un carattere che il tuo file non usa. Microsoft documenta che Excel prende il delimitatore dei file .csv dal separatore di elenco di Windows, quindi un file separato da virgole su una macchina impostata sul punto e virgola non ne trova nessuno e conclude che ogni riga è un campo enorme. Apri il file in un editor di testo e guarda la prima riga: il carattere fra le intestazioni è il delimitatore vero. Chiudilo, vai su Dati e Da testo/CSV, e scegli quel carattere nell'anteprima. Due cose da non fare: non dividere la colonna a mano, perché lo rifarai il mese prossimo; e pensaci due volte prima di cambiare il separatore di elenco di Windows, dato che la documentazione di Microsoft avverte che è una modifica globale che riguarda ogni applicazione sulla macchina.
- Perché mettere le virgolette attorno a un campo non impedisce a Excel di trasformarlo in una data?
- Perché in un CSV le virgolette sono punteggiatura, non annotazione. L'RFC 4180 dà loro un unico compito: segnare dove un campo inizia e finisce quando il campo stesso contiene una virgola, una virgoletta doppia o un'interruzione di riga. Non portano informazione su che cosa il campo significhi, e il formato non offre nessun altro posto in cui metterla — un CSV non ha davvero alcun concetto di tipo. Quindi il lettore toglie le virgolette come parte dell'analisi, esattamente come deve, e solo dopo comincia a indovinare che cosa ha in mano. Ecco perché tutti i rimedi pubblicati da Microsoft stanno dal lato della lettura e non della scrittura: importare la colonna come Testo, o disattivare le conversioni automatiche. Nulla di ciò che scriverai nel file vincolerà la supposizione.
- Basta mettere sep=; sulla prima riga perché Excel ci prenda?
- In Excel funziona, e ovunque altrove è una trappola. Quella prima riga è un'estensione specifica di Excel: l'RFC 4180, che definisce il formato CSV, non la menziona e nessun parser conforme è tenuto a capirla. Così il file diventa più facile per un programma e più difficile per tutti gli altri: uno script, un'importazione in database, un gestionale di contabilità o un collega su Mac leggeranno quella riga come una riga di dati con un campo chiamato sep=; e o falliranno o importeranno in silenzio un record spazzatura in cima alla tua tabella. Se il file va a una persona che lo aprirà in Excel e in nessun altro posto, è una comodità ragionevole. Se va in una catena di elaborazione, o a qualcuno di cui non conosci gli strumenti, non metterlo: manda il file pulito e di' in una frase quale separatore e quale codifica hai usato.
- La mia referenza di 16 cifre ora finisce con degli zeri. Dove sono finite le cifre?
- Sono state arrotondate via, e da quel file non sono recuperabili. Microsoft enuncia la regola direttamente: Excel ha una precisione massima di 15 cifre significative, e per qualsiasi numero di 16 cifre o più tutto ciò che segue la quindicesima viene arrotondato a zero. Il valore è poi mostrato in notazione scientifica perché non sta più utilmente nella colonna. Il punto importante è che non si tratta di un problema di visualizzazione: allargare la colonna o cambiare il formato numero non riporterà indietro le cifre, perché sono sparite dal valore memorizzato. Torna alla fonte originale, importa la colonna come Testo, e non lasciare mai che un numero di referenza, un numero di conto, un numero di carta o un lungo codice prodotto esista come numero in nessun punto della catena. Su Microsoft 365 ed Excel 2024 puoi anche disattivare del tutto la conversione: File, Opzioni, Dati, e togli l'opzione sul mantenere le prime 15 cifre dei numeri lunghi.
- Virgola o punto e virgola — quale è davvero corretto?
- Secondo lo standard, la virgola. L'RFC 4180 definisce il formato con virgole fra i campi, un ritorno a capo seguito da avanzamento riga alla fine di ogni record, e virgolette doppie attorno a ogni campo che contenga uno di questi caratteri. Ogni linguaggio di programmazione, database e strumento per i dati lo segue, quindi la virgola è ciò che va usato per tutto ciò che leggerà una macchina. In pratica, però, il punto e virgola è ciò che un foglio di calcolo si aspetta in gran parte dell'Europa continentale, per la ragione aritmetica che lì la virgola è già il separatore decimale. La regola praticabile è decidere per destinazione e non per principio: virgola per le macchine e per tutto ciò che varca un confine, punto e virgola quando il file va dritto nell'Excel di un collega di cui conosci le impostazioni internazionali. E qualunque cosa scegli, dillo: una riga che indichi separatore e codifica previene l'intera classe di problemi di cui parla questo articolo.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
Il comportamento qui descritto per gli strumenti di questo sito è stato letto dal loro codice sorgente il 13 agosto 2026 e misurato sulle librerie che incorporano. Il comportamento di un foglio di calcolo dipende dalla versione, dalla build e dalle impostazioni internazionali della macchina che hai davanti: Microsoft ha cambiato parecchi di questi valori predefiniti, quindi controlla i tuoi invece di fidarti di un articolo, questo compreso.
Fonti
- Microsoft Support — Opening CSV UTF-8 files correctly in Excel — a UTF-8 CSV opens normally if it was saved with a byte order mark, otherwise use the import route
- Microsoft Learn — Formula errors when list separator isn't set correctly — Excel uses the Windows list separator as the delimiter for .csv files; the comma is the US-English default
- Microsoft Support — Keeping leading zeros and large numbers — the 15-significant-digit precision limit, and importing a column as Text through Data, From Text/CSV
- Microsoft Support — Set automatic data conversions — File, Options, Data on Microsoft 365 and Excel 2024, with switches for leading zeros, long numbers, E-notation and date-like text
- IETF — RFC 4180 — the CSV format: comma separators, CRLF records, quoting rules, and the text/csv media type
Hai notato un errore in questo articolo?