12 september, 2012

UTF-8 med BOM

EF BB BF who?
En enkel inläsning av en UTF-8 encodad textfil blev stökigare än väntat. Filen är en enkel semikolonseparerad fil med siffror i första kolumnen. Av någon anledning gick det inte att använda Integer.valueOf() på just det första värdet! Vaaarföör! NumberFormatException for String "1"... Say again please?! Efter en stunds koll av kod och fil så laddade jag ner en Hex-editor för att se vad som fanns där i starten av filen.

EF BB BF, glöm aldrig dessa. Dessa sköna bytes kallas BOM (Byte Order Mark) och Java gillar inte BOM. Men som vanligt finns det folk som löst det problem man ställs inför, i det här fallet hette lösningen BOMInputStream och den är din vän när du måste hantera UTF-8 encodade filer med BOM´s.

Man lär så länge man lever!



Inga kommentarer:

Skicka en kommentar