An Italian CSV: semicolons, decimal commas, and accents that arrive broken
An Italian export has semicolons between the fields and a comma inside the numbers. The part that makes an Italian file distinctive is the text: accented vowels are everywhere in Italian, and an older export is usually written in Windows-1252, so the accents are the first thing to break.
What a Italian file usually looks like
Saved by a spreadsheet set to Italian (Italy), the file has a semicolon between the fields, a comma as the decimal mark and a full stop between thousands, so one thousand two hundred and thirty-four and a half is written 1.234,56. Dates are written DD/MM/YYYY: the last day of 2026 is 31/12/2026.
The separator is not a character any of the numbers contain, so nothing in the file needs quoting to survive — which is exactly why the amounts and the fields can be told apart at all.
None of this is a rule the file carries with it — there is no country written inside a CSV. It is what the program that wrote the file was set to, which is why every tool here reads the bytes and says what it found rather than trusting a flag.
Why the accents break, and what it does not mean
Italian text is full of à, è, ì, ò and ù, and those letters are exactly the ones that differ between UTF-8 and the older Windows-1252 encoding many accounting and management systems still write. Open a Windows-1252 file as UTF-8 and città becomes città . Open a UTF-8 file as Windows-1252 and you get the same kind of mess in the other direction.
Neither case means the file is damaged. The bytes are exactly what they always were; the reading is wrong. That distinction matters because the repair is different: a wrongly-read file is fixed by reading it correctly, while a file that was written wrongly — where the accented letters were replaced by question marks on the way out — has genuinely lost them and no tool can bring them back.
The health check here tells you which case you have. It reports garbled text and a byte order mark when it finds them, so you know whether you are looking at a reading problem, which is free to fix, or a writing problem, which means going back to the system that produced the export.
Reading it correctly, and the rest of the file
The delimiter fixer decodes by what the bytes actually are rather than by what the file extension claims, so a Windows-1252 export comes through with its accents intact and the copy you download is clean UTF-8 that every modern tool reads the same way. That single step usually fixes the text for good.
The numbers and the separator come along with it: semicolons between fields, amounts like 1.234,56 converted to 1234.56 in every column where nearly every value reads as a number, with the count shown before you download and a switch to leave them alone. Dates are written 31/12/2026, day first, and are read with the pattern %d/%m/%Y in the console when you need them as real dates.
The sample file
Fattura;Cliente;Data;Importo
INV-1001;Esempio Srl;31/12/2026;1.234,56
INV-1002;Società Campione SpA;02/03/2026;89,50
INV-1003;Modello Srl;05/06/2026;32,10
INV-1004;Prova Città Srl;12/11/2026;24.680,00
INV-1005;Dimostrazione SpA;20/01/2026;410,00
Obviously made-up data, small enough to read. Download it and drop it on the tool to see the fix before trying your own file.
Questions
- Why does città appear as città in my CSV?
- The file is being read with the wrong encoding, almost always a Windows-1252 export opened as UTF-8. The data is intact; only the reading is wrong, and reading it correctly restores the accents.
- Are my accented letters lost for good?
- Only if the program that wrote the export replaced them, which shows up as question marks or empty boxes rather than as odd letter pairs. Odd pairs like à mean the letters are still there.
- Why is the file separated by semicolons?
- Italian regional settings use the comma as the decimal mark, so the separator between values is a semicolon. That is correct for Italy and unreadable to anything expecting commas.
- How do I tell whether my file is UTF-8?
- Run it through the health check here, which says what it read and flags garbled text and a byte order mark. Guessing from the way it looks in one program is how the wrong repair gets chosen.
- Will converting the file change my amounts?
- Only where a whole column reads as numbers under the Italian rules, and the number of values changed is stated before you download. One switch turns it off and leaves every value exactly as written.
- Is my Italian export sent anywhere to be read?
- No. The encoding is detected and the file rewritten inside this page on your own machine, with no request going out to be intercepted.