A Brazilian CSV: semicolons, decimal commas, and amounts with R$ attached
A Brazilian export separates fields with semicolons and writes 1.234,56 the way most of continental Europe does. What sets one apart is the currency: amounts frequently arrive as R$ 1.234,56, with the symbol inside the same column, and a value with a symbol in it is text rather than a number to everything downstream.
What a Brazilian file usually looks like
Saved by a spreadsheet set to Portuguese (Brazil), 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.
The currency symbol is inside the value
A column of R$ 1.234,56 looks like money and behaves like a sentence. Nothing sums it, nothing sorts it into the right order, and no conversion touches it, because the rule that decides whether a column of amounts can be rewritten is whether nearly every value in it reads as a number — and R$ 1.234,56 does not. The column is left exactly as it was, which is the right answer for a tool that must never guess, and not the answer you wanted.
So the order of operations matters. Take the symbol out first with find and replace — search for the symbol together with the space after it, so you are not left with a leading gap — and count what was replaced to be sure you caught every row. What remains is 1.234,56 in every cell, which is an ordinary Brazilian amount.
The sample on this page is written that way on purpose — every amount in it carries the symbol — so you can watch the fixer decline the column and then convert it after the replacement. With the column clean, the delimiter fixer converts it: 1.234,56 becomes 1234.56, the count of changed values is shown, and the download is comma-separated UTF-8. Keeping the currency as a separate column, or in the column heading, is worth doing at that point — it is the difference between a column you can add up and one you have to clean every month.
The rest of a Brazilian file
Dates are written 31/12/2026, day first, with the same slashes an American file uses in the other order, so any date below the thirteenth is ambiguous by eye. Read them with the pattern %d/%m/%Y rather than letting something guess; the console does it in one expression.
Reference numbers deserve the same care they do anywhere: a document number with leading zeros stays whole through every tool here, because the file is read as text and written back as text. If it has to become a workbook, the CSV to Excel converter writes every value as a text cell so a spreadsheet cannot retype it on opening.
The sample file
Fatura;Cliente;Data;Valor
INV-1001;Exemplo Ltda;31/12/2026;R$ 1.234,56
INV-1002;Amostra SA;02/03/2026;R$ 89,50
INV-1003;Modelo Ltda;05/06/2026;R$ 32,10
INV-1004;Teste Ltda;12/11/2026;R$ 24.680,00
INV-1005;Demonstracao SA;20/01/2026;R$ 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 my Brazilian CSV open as one column?
- The fields are separated by semicolons, because the comma is already the decimal mark in Brazilian settings. Anything expecting commas reads each line as a single long value.
- Why were my R$ amounts not converted?
- Because a value with a currency symbol in it does not read as a number, so the column does not qualify for conversion and is left untouched rather than half rewritten. Remove the symbol first and it converts.
- How do I remove R$ from a whole column?
- Find and replace here works on the text of the file: search for the symbol and the space that follows it, replace with nothing, and check the count of replacements against the number of rows.
- What does 1.234,56 become after conversion?
- It becomes 1234.56 — the same amount written the way most databases and English-locale tools expect — and the number of values changed is reported before you download.
- Is 05/06/2026 the fifth of June or the sixth of May?
- In a Brazilian file, the fifth of June: the day comes first. An American tool reading the same text gets the sixth of May and shows no error, which is why the pattern is worth stating explicitly.
- Does my Brazilian export leave my computer?
- No. The replacement and the conversion both happen in this page on your own machine, and the browser is instructed to block outbound connections while you work.