Guider

Konstiga tecken i CSV-fil – därför händer det och så fixar du det

Av Opener-teamet5 min läsning

Konstiga tecken som ”é” eller ”Сума” betyder att CSV-filen sparades i en teckenkodning och öppnades som om den vore en annan – bokstäverna finns kvar i filen, de avkodas bara fel. Öppna filen med rätt kodning (CSV-läsaren känner igen den automatiskt) och spara en kopia i UTF-8. Frågetecken (”????”) är något annat: de betyder oftast att bokstäverna gick förlorade redan när filen skrevs.

Vad en teckenkodning är, på en minut

En CSV-fil är vanlig text, och på disken är text bara en lista med tal (byte). En teckenkodning är tabellen som säger vilket tal som betyder vilken bokstav. För engelska grundbokstäver och siffror är nästan alla kodningar överens, och därför ser siffrorna i bankexporten bra ut medan namn och beskrivningar blir till skräp.

De tre du stöter på i exporter från ekonomiprogram och banker:

Filen säger oftast inte själv vilken kodning den använder. Programmet som öppnar den måste gissa, och gissar det fel får du mojibake – den tekniska termen för den här sortens förvrängda text.

Läs skräpet: vad varje mönster avslöjar

Vilken sorts skräp du ser är en ledtråd till vad som gick fel.

Du ser Du väntade dig Vad som hände
é, ü, € é, ü, € UTF-8-fil öppnad som Windows-1252
Сума (många Ð och Ñ) Сума Kyrilliska i UTF-8 öppnad som Windows-1252
Ñóìà (latinska bokstäver med accenter) Сума Windows-1251-fil öppnad som Windows-1252
Cafй Café Windows-1252-fil öppnad som Windows-1251
� (svart romb med ?) vilken bokstav som helst Äldre fil öppnad som UTF-8
???? vilken bokstav som helst Bokstäverna förlorades när filen sparades

Par som ”Ô + något eller ”Д/”Ñ” + något är fingeravtrycket för UTF-8 som lästs som en äldre kodning: varje bokstav utanför engelskan är två byte i UTF-8, och den gamla tabellen visar varje byte som en egen symbol. Det är goda nyheter – inget har gått förlorat, och öppnar du filen som UTF-8 blir det rätt.

Vanliga frågetecken är dåliga nyheter. De dyker oftast upp när ett program försökte spara text i en kodning som saknar plats för de bokstäverna (till exempel kyrilliska i Windows-1252) och ersatte varenda en med ?. De ursprungliga bokstäverna finns inte längre i filen, och ingen visare kan få tillbaka dem. Lösningen är att exportera igen från källsystemet och välja UTF-8 eller rätt regional kodning om exportdialogen erbjuder det.

BOM: därför tolkar Excel UTF-8 fel

En UTF-8-fil kan börja med tre osynliga byte som kallas byte order mark (BOM). Den är en ledtråd som säger ”den här filen är UTF-8”.

När du dubbelklickar på en CSV förlitar sig Excel mycket på den ledtråden. Med BOM läser Excel oftast UTF-8 rätt; utan BOM antar det ofta datorns äldre kodning – och det är precis så en helt korrekt UTF-8-export från banken förvandlas till ”Сума”. Andra program gör tvärtom och visar BOM:en som skräp, till exempel  i början av första kolumnrubriken. Ser du det är filen UTF-8 och BOM:en visas som text.

Lösning 1: öppna filen med automatisk identifiering

Det snabbaste är att låta något känna igen kodningen åt dig. Openers CSV-läsare provar UTF-8 först och faller tillbaka på Windows-1251 eller Windows-1252 beroende på texten, så att namn och beskrivningar visas rätt utan någon importguide. Den känner också igen avgränsaren – komma, semikolon, tabb eller lodstreck.

Filen läses i din webbläsare och laddas inte upp någonstans, vilket spelar roll för löner, fakturor och kontoutdrag. För att laga filen för andra program använder du exportknappen: du får en ren UTF-8-kopia av tabellen (den aktuella vyn, så rensa en eventuell sökning först om du vill ha alla rader). Är problemet att allt hamnar i en kolumn snarare än att bokstäverna är förvrängda, läs varför en CSV öppnas i en enda kolumn.

Lösning 2: importera i Excel med rätt ”Filursprung”

Dubbelklicka inte på filen. Öppna i stället en tom arbetsbok och använd importen ”Från text/CSV” på fliken Data. Förhandsgranskningen har en lista för filursprung där du väljer kodning:

Växla mellan dem och titta på förhandsgranskningen – i samma stund som namnen ser rätt ut har du hittat rätt kodning. Läs sedan in datan. Ska du skicka filen vidare sparar du den från Excel med filtypen ”CSV UTF-8” i stället för vanlig ”CSV”, som kan använda den äldre kodningen igen.

Lösning 3: Google Sheets, LibreOffice eller en textredigerare

Google Sheets. Att importera en CSV i Google Sheets (Arkiv → Importera) fungerar bra med UTF-8-filer, och i importdialogen kan du välja avgränsare. För äldre filer är det en mindre pålitlig väg: visar en export i Windows-1251 eller Windows-1252 fortfarande förvrängda bokstäver, konvertera den till UTF-8 med någon av de andra metoderna och importera den kopian.

LibreOffice Calc. När du öppnar en CSV visar LibreOffice en dialog för textimport med en lista för teckenuppsättning. Välj Unicode (UTF-8), kyrilliska (Windows-1251) eller västeuropeiska (Windows-1252) så uppdateras förhandsgranskningen direkt. Programmet är gratis och fungerar på Windows, macOS och Linux.

En textredigerare. Med redigerare som Anteckningar i Windows, TextEdit på macOS eller en kodredigerare som VS Code kan du välja kodning när du sparar. Haken: redigeraren måste först öppna filen med rätt kodning. Ser texten rätt ut i redigeraren, spara den som UTF-8. Ser den redan förvrängd ut där bevarar du bara skräpet när du sparar – öppna den med rätt kodning först.

Vanliga frågor

Kan jag laga ”????” i min CSV?

Oftast inte. Frågetecknen betyder att tecknen ersattes när filen skrevs, så de ursprungliga bokstäverna finns inte i filen. Exportera igen från ekonomiprogrammet eller banken och välj UTF-8 om det går.

Vilken kodning ska jag använda när jag sparar eller exporterar?

UTF-8. Den lagrar alla alfabet, och alla moderna program förstår den. Om kollegor öppnar filen genom att dubbelklicka i Excel, använd Excels alternativ ”CSV UTF-8” så att filen börjar med en BOM.

Ändras mina siffror om jag byter kodning?

Nej. Siffror, punkter och kommatecken är desamma i UTF-8, Windows-1251 och Windows-1252, så belopp och datum påverkas inte. Bara bokstäver utanför grundläggande engelska ändras.

Är det säkert att laga en bankexport online?

Bara om verktyget inte laddar upp den. CSV-läsaren avkodar och exporterar filen helt i din webbläsare, så kontoutdraget lämnar aldrig din enhet.