ASCII, UTF-8, ISO-8859 ... Du har måske set disse mærkelige monikere flyde rundt, men hvad betyder de egentlig? Læs videre, når vi forklarer, hvad tegnkodning er, og hvordan disse akronymer vedrører den almindelige tekst, vi ser på skærmen.
Grundlæggende byggesten
Når vi taler om skriftsprog, taler vi om, at bogstaver er byggestenene til ord, som derefter bygger sætninger, afsnit osv. Bogstaver er symboler, der repræsenterer lyde. Når du taler om sprog, taler du om grupper af lyde, der samles for at danne en slags mening. Hvert sprogsystem har et komplekst sæt regler og definitioner, der styrer disse betydninger. Hvis du har et ord, er det ubrugeligt, medmindre du ved, hvilket sprog det kommer fra, og du bruger det sammen med andre, der taler dette sprog.
(Sammenligning af Grantha-, Tulu- og Malayalam-manuskripter, Billede fra Wikipedia )
I computeren bruger vi udtrykket "karakter". En karakter er en slags abstrakt begreb defineret af specifikke parametre, men det er den grundlæggende meningsenhed. Den latinske 'A' er ikke det samme som en græsk 'alfa' eller en arabisk 'alif', fordi de har forskellige sammenhænge - de kommer fra forskellige sprog og har lidt forskellige udtaler - så vi kan sige, at de er forskellige tegn. Den visuelle repræsentation af et tegn kaldes en "glyph", og forskellige sæt glyfer kaldes skrifttyper. Grupper af tegn hører til et "sæt" eller et "repertoire."
Når du skriver et afsnit, og du ændrer skrifttypen, ændrer du ikke bogstavernes fonetiske værdier, du ændrer, hvordan de ser ud. Det er bare kosmetisk (men ikke uvigtigt!). Nogle sprog, ligesom det gamle egyptiske og kinesiske, har ideogrammer; disse repræsenterer hele ideer i stedet for lyde, og deres udtaler kan variere over tid og afstand. Hvis du erstatter et tegn med et andet, erstatter du en idé. Det er mere end bare at ændre bogstaver, det er at ændre et ideogram.
Tegnkodning
(Billede fra Wikipedia )
Når du skriver noget på tastaturet eller indlæser en fil, hvordan ved computeren, hvad den skal vises? Det er hvad tegnkodning er til. Tekst på din computer er faktisk ikke bogstaver, det er en række parrede alfanumeriske værdier. Tegnkodningen fungerer som en nøgle, for hvilke værdier der svarer til hvilke tegn, ligesom hvordan ortografi dikterer hvilke lyde, der svarer til hvilke bogstaver. Morse-kode er en slags tegnkodning. Det forklarer, hvordan grupper af lange og korte enheder såsom bip repræsenterer tegn. I Morse-kode er tegnene kun engelske bogstaver, tal og punktum. Der er mange kodning af computertegn, der oversættes til bogstaver, tal, accentmærker, tegnsætningstegn, internationale symboler og så videre.
Ofte om dette emne bruges udtrykket "kodesider" også. De er i det væsentlige karakterkodninger, som de bruges af bestemte virksomheder, ofte med mindre ændringer. For eksempel er Windows 1252-kodesiden (tidligere kendt som ANSI 1252) en modificeret form af ISO-8859-1. De bruges hovedsageligt som et internt system til at henvise til standard- og modificerede tegnkodninger, der er specifikke for de samme systemer. Tidligt var tegnkodning ikke så vigtig, fordi computere ikke kommunikerede med hinanden. Da Internettet er fremtrædende, og netværk er en almindelig begivenhed, er det blevet en stadig vigtigere del af vores daglige liv uden at vi engang er klar over det.
Mange forskellige typer
(Billede fra sarah sosiak )
Der er masser af forskellige karakterkodninger derude, og der er masser af grunde til det. Hvilken tegnkodning du vælger at bruge, afhænger af, hvad dine behov er. Hvis du kommunikerer på russisk, er det fornuftigt at bruge en tegnkodning, der understøtter kyrillisk godt. Hvis du kommunikerer på koreansk, vil du gerne have noget, der repræsenterer Hangul og Hanja godt. Hvis du er matematiker, vil du have noget, der har alle de videnskabelige og matematiske symboler repræsenteret godt såvel som de græske og latinske tegn. Hvis du er en sjov, vil du måske have gavn af det tekst på hovedet . Og hvis du vil have alle disse typer dokumenter vist af en given person, vil du have en kodning, der er ret almindelig og let tilgængelig.
Lad os se på nogle af de mere almindelige.
(Uddrag af ASCII-tabel, billede fra asciitable.com )
- ASCII - Den amerikanske standardkode for informationsudveksling er en af de ældre tegnkodninger. Det blev oprindeligt udtænkt baseret på telegrafiske koder og udviklede sig over tid til at omfatte flere symboler og nogle nu forældede ikke-trykte kontroltegn. Det er sandsynligvis så grundlæggende som du kan få med hensyn til moderne systemer, da det er begrænset til det latinske alfabet uden tegn med accent. Dens 7-bit-kodning tillader kun 128 tegn, hvorfor der er flere uofficielle varianter i brug over hele verden.
- ISO-8859 - Den Internationale Standardiseringsorganisations mest anvendte gruppe af tegnkodninger er nummer 8859. Hver specifik kodning er udpeget med et nummer, ofte foran en beskrivende moniker, f.eks. ISO-8859-3 (Latin-3), ISO-8859-6 (Latin / Arabisk). Det er et supersæt af ASCII, hvilket betyder at de første 128 værdier i kodningen er de samme som ASCII. Det er dog 8-bit og giver mulighed for 256 tegn, så det bygger derfra og inkluderer et meget bredere udvalg af tegn, hvor hver specifik kodning fokuserer på et andet sæt kriterier. Latin-1 inkluderede en masse accenterede bogstaver og symboler, men blev senere erstattet med et revideret sæt kaldet Latin-9, der inkluderer opdaterede tegn som eurosymbolet.
(Uddrag af tibetansk script, Unicode v4, fra unicode.org )
- Unicode - Denne kodningsstandard sigter mod universalitet. Den indeholder i øjeblikket 93 scripts organiseret i flere blokke, med mange flere i værkerne. Unicode fungerer anderledes end andre tegnsæt, idet hver værdi rettes videre til et "kodepunkt" i stedet for direkte at kode for en glyf. Disse er hexadecimale værdier, der svarer til tegn, men selve tegnene leveres på en løsrevet måde af programmet, såsom din webbrowser. Disse kodepunkter er almindeligt afbildet som følger: U + 0040 (som oversættes til ‘@’ ). Specifikke kodninger under Unicode-standarden er UTF-8 og UTF-16. UTF-8 forsøger at give maksimal kompatibilitet med ASCII. Det er 8-bit, men tillader alle tegn via en substitutionsmekanisme og flere par værdier pr. Tegn. UTF-16 grøfter perfekte ASCII-kompatibilitet for en mere komplet 16-bit kompatibilitet med standarden.
- ISO-10646 - Dette er ikke en egentlig kodning, bare et tegnsæt af Unicode, der er standardiseret af ISO. Det er for det meste vigtigt, fordi det er karakterrepertoiret, der bruges af HTML. Nogle af de mere avancerede funktioner leveret af Unicode, der giver mulighed for sortering og højre mod venstre sammen med venstre til højre scripting mangler. Stadig fungerer det meget godt til brug på internettet, da det giver mulighed for brug af en lang række scripts og gør det muligt for browseren at fortolke tegnene. Dette gør lokalisering noget lettere.
Hvilken kodning skal jeg bruge?
Nå, ASCII fungerer for de fleste engelsktalende, men ikke for meget andet. Oftere vil du se ISO-8859-1, som fungerer på de fleste vesteuropæiske sprog. De andre versioner af ISO-8859 fungerer til kyrilliske, arabiske, græske eller andre specifikke scripts. Men hvis du vil vise flere scripts i det samme dokument eller på den samme webside, giver UTF-8 mulighed for meget bedre kompatibilitet. Det fungerer også rigtig godt for folk, der bruger korrekt tegnsætning, matematiske symboler eller ikke-manchettegn, såsom firkanter og afkrydsningsfelter .
(Flere sprog i et dokument, skærmbillede af gujaratsamachar.com )
Der er dog ulemper ved hvert sæt. ASCII har begrænsede tegnsætningstegn, så det fungerer ikke utroligt godt til typografisk korrekte redigeringer. Har du nogensinde skrevet copy / paste fra Word kun for at have en underlig kombination af tegn? Det er ulempen ved ISO-8859, eller mere korrekt, dens formodede interoperabilitet med OS-specifikke kodesider (vi ser på DIG, Microsoft!). UTF-8s største ulempe er mangel på korrekt support i redigering og udgivelse af applikationer. Et andet problem er, at browsere ofte ikke fortolker og bare viser byteordren for et UTF-8-kodet tegn. Dette resulterer i, at uønskede tegn vises. Og selvfølgelig gør det vanskeligt for browsere at gengive dem korrekt og for søgemaskiner at indeksere dem korrekt, hvis man erklærer en kodning og bruger tegn fra en anden uden at erklære / henvise til dem korrekt på en webside.
Til dine egne dokumenter, manuskripter osv. Kan du bruge alt hvad du behøver for at få arbejdet gjort. For så vidt det går til internettet, ser det ud til, at de fleste mennesker er enige om at bruge en UTF-8-version, der ikke bruger et byteordermærke, men det er ikke helt enstemmigt. Som du kan se, har hver karakterkodning sin egen brug, kontekst og styrker og svagheder. Som slutbruger behøver du sandsynligvis ikke håndtere dette, men nu kan du tage det ekstra skridt fremad, hvis du ønsker det.