Voor degene onder ons die wel eens te maken hebben met het verwerken van tekst- of csv-bestanden zal het bekend voorkomen: welke encoding moet ik gebruiken om de bestanden juist in te lezen? Als je dan de lijst met encoding standaarden doorneemt zou je misschien geneigd zijn om de default encoding te gebruiken. Toch is het een slecht idee om gebruik te maken van de default encoding om de volgende redenen:

  • De default encoding slaat geen informatie op over welke encoding gebruikt wordt waardoor het voor de ontvanger van de encoded informatie niet mogelijk is om te achterhalen met welke encoding de informatie opgesteld is. Wanneer je UTF-8 of UTF-16 encoding gebruikt, is het wel mogelijk om een handtekening aan de encoded informatie te geven waardoor de ontvanger weet welke encoding gebruikt wordt.
  • Encoding default gebruik de encoding die ingesteld is op de computer, deze encoding kan echter eenvoudig gewijzigd worden en zal bovendien mogelijk niet hetzelfde zijn wanneer informatie tussen verschillende computers gedeeld wordt. Het gevolg kan zijn dat encoded informatie niet juist gedecoded kan worden.
  • Encoding default gebruikt een ANSI-codering als basis waardoor maar een klein gedeelte van de karakters in de unicode standaard gebruikt kan worden.

Als je de default encoding niet kunt gebruiken, welke codering gebruikt je dan wel? Ik heb goede ervaringen met het gebruik van UTF-8 of UTF-16, deze ondersteunen alle tekens die ik in de praktijk tegenkom. Voor latin based talen is UTF-8 prima, wanneer je ook niet latin talen wilt ondersteunen is UTF-16 de beste keuze. Een encoding met een van deze standaarden zal in de praktijk wat meer ruimte vergen dan de meer beperkte default / ANSI-coderingen, maar scheelt je een hoop kopzorgen wanneer je diakritische tekens gebruikt in tekst.