Göm meny

Textfiler

Alla filer består av en sekvens av ettor och nollor. Vi brukar dock skilja på filer vars sekvens av värden kan tolkas som ren text och binära filer.

Textfiler

Följden av ettor och nollor i ren textfil kan avkodas till text genom att först korrekt avkoda en grupp av ettor och nollor till ett numeriskt värde som kan användas som en kodpunkt i en korrekt teckentabell. I teckentabellen ser man sedan vilket tecken som ska visas.

Teckenkodning

Begreppen teckenkodning och teckentabell blandas ofta ihop, för att de i många fall har ett ett-till-ett-förhållande. Exempel på detta är ISO-8859-1 (även kallad latin-1) där varje grupp om 8-bitar, en byte, avkodas som ett numeriskt värde mellan 0-255 som då motsvarar en kodpunkt i teckentabellen för ISO-8859-1.

En nackdel med denna typ av kodning är att teckentabellen endast har plats för max 256 olika tecken (i princip alltid färre eftersom kontrollkoder och osynliga tecken som t.ex. mellanslag, radbryt, tabtecken m.m. också tar plats).

Idag använder vi Unicode vars teckentabell 1 112 064 möjliga kodpunkter. Antalet upptagna kodpunkter i mars 2020 var 143 859, så det finns gott om utrymme kvar att växa i. I denna stora teckentabell ryms emojis, hieroglyfer, kinesiska tecken, kilskrift, pilar och matematiska symboler.

För att koda värdet för en kodpunkt till fil behövs dock i många fall fler än en byte. UTF-8, UTF-16 och UTF-32 är olika teckenkodningar som kan användas för att koda en kodpunkt i Unicode-tabellen till en sekvens av ettor och nollor som kan lagras på fil. I UTF-8 utgår man från att koda ett tecken som en byte, men för kodpunkter senare i Unicode-tabellen används två, tre och till och med fyra bytes per tecken. De första 128 tecknena i Unicode ryms i en byte. Följande 1920 tecken kan kodas med två bytes och för de efterföljande 2048 tecknena behövs tre bytes.

Vilken teckenkodning man använder beror på vilken region i teckentabellen man använder mest. Tecken som används i t.ex. japanska och kinesiska behöver 3 bytes i UTF-8, men endast 2 bytes i UTF-16 (som utgår från 16 bitar per tecken), så det är mer platsekonomiska att använda UTF-16 här istället för UTF-8.

Använding av textfiler

Textfiler används i väldigt stor utsträckning inom programmering. Kod i alla vanligare text-baserade programmeringsspråk lagras i textfiler. Textfilerna kan ha olika filändelser, som t.ex. .py, .java, .c, eller .js, men de är alla textfiler. Filändelsen är mer en ledtråd som t.ex. texteditorer som Visual Studio Code kan använda sig av för att veta hur den ska tolka texten. Om vi öppnar en fil med filändelsen .py i VSCode kommer VSCode att försöka tolka den som om den innehåller pythonkod och t.ex. se till att speciella ord och konstruktioner får en viss färg. Färgläggningen är något som texteditorn gör och finns inte lagrad i själva textfilen.

Binära filer

Till kategorin binära filer tillhör alla filer som inte ska tolkas som ren text, d.v.s. sekvenser av ettor och nollor som inte ska avkodas med hjälp av en teckenkodning.

Exempel på binära filer är Word-dokument, PDF:er, kompilerade program-filer, samt diverse ljud- och bildfiler.


Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2021-02-03