Hva er forskjellen mellom ASCII og Unicode -tekst?

Hva er forskjellen mellom ASCII og Unicode -tekst?

ASCII og Unicode er begge standarder som refererer til digital representasjon av tekst, spesielt tegn som utgjør tekst. Imidlertid er de to standardene vesentlig forskjellige, med mange eiendommer som gjenspeiler deres respektive opprettelsesrekkefølge.





Amerika mot universet

American Standard Code for Information Interchange (ASCII) henvender seg ikke overraskende til et amerikansk publikum og skriver i det engelske alfabetet. Den omhandler bokstaver uten aksenter, for eksempel A-Z og a-z, pluss et lite antall skilletegn og kontrolltegn.





Spesielt er det ingen måte å representere lånord fra andre språk, for eksempel kaffe i ASCII, uten å anglicisere dem ved å erstatte aksenttegn (f.eks. kafe ). Lokaliserte ASCII -utvidelser ble utviklet for å imøtekomme behovene til ulike språk, men denne innsatsen gjorde interoperabilitet vanskelig og strakk tydelig ASCIIs evner.





I kontrast ligger Universal Coded Character Set (Unicode) i motsatt ende av ambisjonsskalaen. Unicode prøver å imøtekomme så mange av verdens skrivesystemer som mulig, i den grad det dekker eldgamle språk og alles favoritt sett med uttrykksfulle symboler, emoji.

Tegnsett eller tegnkoding?

Enkelt sagt er et tegnsett et utvalg av tegn (f.eks. A-Z) mens en tegnkoding er en kartlegging mellom et tegnsett og en verdi som kan representeres digitalt (f.eks. A = 1, B = 2).



ASCII -standarden er effektivt begge deler: Den definerer settet med tegn som den representerer og en metode for å kartlegge hvert tegn til en numerisk verdi.

I kontrast brukes ordet Unicode i flere forskjellige sammenhenger for å bety forskjellige ting. Du kan tenke på det som et altomfattende begrep, som ASCII, for å referere til et tegnsett og en rekke kodinger. Men fordi det er flere kodinger, brukes begrepet Unicode ofte for å referere til det samlede settet med tegn, snarere enn hvordan de er kartlagt.





Størrelse

På grunn av omfanget representerer Unicode langt flere tegn enn ASCII. Standard ASCII bruker et 7-biters område for å kode 128 distinkte tegn . Unicode, derimot, er så stort at vi må bruke annen terminologi bare for å snakke om det!

Unicode henvender seg til 1111998 som kan adresseres kodepunkter. Et kodepunkt er omtrent analogt med et mellomrom reservert for et tegn, men situasjonen er mye mer komplisert enn det når du begynner å fordype deg i detaljene!





En mer nyttig sammenligning er hvor mange skript (eller skrivesystemer) som støttes for øyeblikket. Selvfølgelig håndterer ASCII bare det engelske alfabetet, i hovedsak det latinske eller romerske skriften. Versjonen av Unicode produsert i 2020 går mye lenger: den inkluderer støtte for totalt 154 skript.

Oppbevaring

ASCIIs 7-biters område betyr at hvert tegn er lagret i en enkelt 8-bits byte; reservebiten er ubrukt i standard ASCII. Dette gjør størrelsesberegninger trivielle: lengden på tekst, i tegn, er filens størrelse i byte.

Du kan bekrefte dette med følgende sekvens av bash -kommandoer. Først lager vi en fil som inneholder 12 bokstaver med tekst:

hvordan lage din egen minecraft mod
$ echo -n 'Hello, world' > foo

For å kontrollere at teksten er i ASCII -kodingen, kan vi bruke fil kommando:

$ file foo
foo: ASCII text, with no line terminators

Til slutt, for å få det eksakte antallet byte som filen opptar, bruker vi stat kommando:

$ stat -f%z foo
12

Siden Unicode -standarden omhandler et langt større spekter av tegn, tar en Unicode -fil naturligvis mer lagringsplass. Nøyaktig hvor mye avhenger av kodingen.

Å gjenta det samme settet med kommandoer fra før, ved hjelp av et tegn som ikke kan representeres i ASCII, gir følgende:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Det ene tegnet opptar 3 byte i en Unicode -fil. Vær oppmerksom på at bash automatisk opprettet en UTF-8-fil siden en ASCII-fil ikke kan lagre det valgte tegnet (€). UTF-8 er den desidert vanligste tegnkodingen for Unicode; UTF-16 og UTF-32 er to alternative kodinger, men de brukes langt mindre.

UTF-8 er en koding med variabel bredde, noe som betyr at den bruker forskjellige mengder lagring for forskjellige kodepunkter. Hvert kodepunkt vil oppta mellom en og fire byte, med den hensikt at mer vanlige tegn krever mindre plass, noe som gir en type innebygd komprimering. Ulempen er at det blir mye mer komplisert å bestemme lengde- eller størrelseskravene til en gitt tekstbit.

ASCII er Unicode, men Unicode er ikke ASCII

For bakoverkompatibilitet representerer de første 128 Unicode -kodepunktene de tilsvarende ASCII -tegnene. Siden UTF-8 koder hvert av disse tegnene med en enkelt byte, er enhver ASCII-tekst også en UTF-8-tekst. Unicode er et supersett av ASCII.

Som vist ovenfor kan imidlertid mange Unicode -filer ikke brukes i en ASCII -kontekst. Ethvert tegn som er utenfor områdene, vises på en uventet måte, ofte med substituerte tegn som er helt forskjellige fra de som var tiltenkt.

Moderne bruk

For de fleste formål anses ASCII i stor grad som en eldre standard. Selv i situasjoner som bare støtter det latinske skriptet-der full støtte for kompleksiteten til Unicode er for eksempel unødvendig-er det vanligvis mer praktisk å bruke UTF-8 og dra nytte av ASCII-kompatibiliteten.

hvordan importere kontakter fra facebook

Spesielt bør websider lagres og overføres ved hjelp av UTF-8, som er standard for HTML5. Dette er i kontrast til det tidligere nettet, som som standard behandlet ASCII før det ble erstattet av Latin 1.

En standard som endrer seg

Den siste revisjonen av ASCII fant sted i 1986.

I kontrast, fortsetter Unicode å bli oppdatert årlig. Nye skript, tegn og spesielt nye emoji blir regelmessig lagt til. Med bare en liten brøkdel av disse tildelt vil sannsynligvis hele tegnsettet vokse og vokse i overskuelig fremtid.

I slekt: De 100 mest populære emojiene forklart

ASCII mot Unicode

ASCII tjente sin hensikt i mange tiår, men Unicode har nå effektivt erstattet det for alle andre praktiske formål enn eldre systemer. Unicode er større og dermed mer uttrykksfull. Det representerer et verdensomspennende, samarbeidende arbeid og tilbyr langt større fleksibilitet, om enn på bekostning av en viss kompleksitet.

Dele Dele kvitring E -post Hva er ASCII -tekst og hvordan brukes den?

ASCII -tekst fremstår som kryptisk, men den har mange bruksområder rundt internett.

Les neste
Relaterte temaer
  • Teknologi forklart
  • Emojis
  • Sjargong
  • Nettkultur
  • Unicode
Om forfatteren Bobby Jack(58 artikler publisert)

Bobby er en teknologientusiast som jobbet som programvareutvikler i de fleste to tiårene. Han brenner for spill, jobber som Reviews Editor i Switch Player Magazine, og er fordypet i alle aspekter av online publisering og webutvikling.

Mer fra Bobby Jack

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere