Base64 encodes bytes, not letters. The same European word produces different Base64 depending on whether those bytes are UTF-8, ISO-8859-1, Windows-1252 or ISO-8859-2. This is the #1 reason developers in France, Germany, Spain, Poland and Nordics see garbled text after “successful” decoding.
Quick map for Europe
| Situation | Likely charset |
|---|---|
| Modern APIs, browsers, JSON, UTF-8 databases | UTF-8 |
| Old Windows apps, Word/Excel exports, Western Europe | Windows-1252 |
| Strict Latin-1 / ISO environments | ISO-8859-1 |
| Euro sign in legacy Western Europe | ISO-8859-15 or Windows-1252 |
| Polish, Czech, Slovak, Hungarian legacy data | ISO-8859-2 |
| Russian / Bulgarian legacy mail | Windows-1251 or KOI8-R |
Classic mojibake: é instead of é
That pattern means UTF-8 bytes were shown as Latin-1/Windows-1252. Decode the Base64 as UTF-8, or paste it into the character encoding detector to rank charsets automatically.
Developer workflow
- Prefer UTF-8 for new systems (Europe and worldwide).
- When decoding unknown legacy Base64, leave charset on auto-detect on the Base64 decoder.
- If you know the source OS (old Windows ERP, bank file, SAP export), force Windows-1252 or ISO-8859-2 explicitly on Base64 to text.
- When encoding for a legacy peer, set the matching charset on text to Base64 so they receive the bytes they expect.
Reacties (0)
Vragen, ideeën of een bug in “Base64 and European character sets”? Laat een reactie achter, beoordeel de tool of reageer op anderen.
Nog geen reacties. Deel als eerste je feedback!