Hvad er forskellen mellem ASCII og Unicode -tekst?

Hvad er forskellen mellem ASCII og Unicode -tekst?

ASCII og Unicode er begge standarder, der refererer til den digitale repræsentation af tekst, især tegn, der udgør tekst. Imidlertid er de to standarder væsentligt forskellige, idet mange egenskaber afspejler deres respektive skabelsesorden.





Amerika mod universet

Den amerikanske standardkode for informationsudveksling (ASCII) henvender sig ikke overraskende til et amerikansk publikum, der skriver i det engelske alfabet. Den omhandler bogstaver uden vægt, f.eks. A-Z og a-z, plus et lille antal tegnsætningssymboler og kontroltegn.





Især er der ingen måde at repræsentere lånord fra andre sprog, f.eks kaffe i ASCII, uden at anglicisere dem ved at erstatte tegn med accent (f.eks. cafe ). Lokaliserede ASCII -udvidelser blev udviklet for at imødekomme forskellige sprogs behov, men disse bestræbelser gjorde interoperabilitet akavet og strakte klart ASCII's muligheder.





Derimod ligger Universal Coded Character Set (Unicode) i den modsatte ende af ambitionsskalaen. Unicode forsøger at imødekomme så mange af verdens skrivesystemer som muligt, i det omfang den dækker gamle sprog og alles yndlingssæt med udtryksfulde symboler, emoji.

Tegnsæt eller tegnkodning?

Enkelt sagt er et tegnsæt et udvalg af tegn (f.eks. A-Z), mens en tegnkodning er en kortlægning mellem et tegnsæt og en værdi, der kan repræsenteres digitalt (f.eks. A = 1, B = 2).



ASCII -standarden er effektivt begge dele: Den definerer det sæt tegn, den repræsenterer, og en metode til at kortlægge hvert tegn til en numerisk værdi.

I modsætning hertil bruges ordet Unicode i flere forskellige sammenhænge til at betyde forskellige ting. Du kan tænke på det som et altomfattende udtryk, ligesom ASCII, at referere til et tegnsæt og et antal kodninger. Men fordi der er flere kodninger, bruges udtrykket Unicode ofte til at referere til det samlede sæt tegn, snarere end hvordan de er kortlagt.





Størrelse

På grund af dets omfang repræsenterer Unicode langt flere tegn end ASCII. Standard ASCII bruger et 7-bit område til at kode 128 forskellige tegn . Unicode er derimod så stor, at vi skal bruge en anden terminologi bare for at tale om det!

Unicode henvender sig til 1.111.998 adresserbare kodepunkter. Et kodepunkt er nogenlunde analogt med et rum, der er forbeholdt et tegn, men situationen er meget mere kompliceret end det, når du begynder at dykke ned i detaljerne!





En mere nyttig sammenligning er, hvor mange scripts (eller skrivesystemer) der i øjeblikket understøttes. Selvfølgelig håndterer ASCII kun det engelske alfabet, hovedsageligt det latinske eller romerske skrift. Den version af Unicode, der blev produceret i 2020, går meget længere: den inkluderer support til i alt 154 scripts.

Opbevaring

ASCIIs 7-bit område betyder, at hvert tegn er gemt i en enkelt 8-bit byte; reservebiten er ubrugt i standard ASCII. Dette gør størrelsesberegninger trivielle: tekstens længde, i tegn, er filens størrelse i bytes.

Du kan bekræfte dette med følgende sekvens af bash -kommandoer. Først opretter vi en fil, der indeholder 12 bogstaver med tekst:

hvad kan nogen gøre med dit simkort
$ echo -n 'Hello, world' > foo

For at kontrollere, at teksten er i ASCII -kodningen, kan vi bruge fil kommando:

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

Endelig, for at få det nøjagtige antal bytes, filen fylder, bruger vi stat kommando:

$ stat -f%z foo
12

Da Unicode -standarden omhandler en langt større række tegn, tager en Unicode -fil naturligvis mere lagerplads. Præcis hvor meget afhænger af kodningen.

Gentagelse af det samme sæt kommandoer fra før ved hjælp af et tegn, der ikke kan repræsenteres i ASCII, giver følgende:

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

Det enkelte tegn optager 3 bytes i en Unicode -fil. Bemærk, at bash automatisk oprettede en UTF-8-fil, da en ASCII-fil ikke kan gemme det valgte tegn (€). UTF-8 er langt den mest almindelige tegnkodning for Unicode; UTF-16 og UTF-32 er to alternative kodninger, men de bruges langt mindre.

UTF-8 er en kodning med variabel bredde, hvilket betyder, at den bruger forskellige lagringsmængder til forskellige kodepunkter. Hvert kodepunkt optager mellem en og fire bytes med den hensigt, at mere almindelige tegn kræver mindre plads, hvilket giver en type indbygget komprimering. Ulempen er, at det bliver meget mere kompliceret at bestemme længde- eller størrelseskravene for et givet stykke tekst.

ASCII er Unicode, men Unicode er ikke ASCII

For bagudkompatibilitet repræsenterer de første 128 Unicode -kodepunkter de tilsvarende ASCII -tegn. Da UTF-8 koder hvert af disse tegn med en enkelt byte, er enhver ASCII-tekst også en UTF-8-tekst. Unicode er et supersæt af ASCII.

Som vist ovenfor kan mange Unicode -filer imidlertid ikke bruges i en ASCII -kontekst. Ethvert tegn, der er uden for grænser, vises på en uventet måde, ofte med substituerede tegn, der er helt forskellige fra dem, der var tiltænkt.

Moderne brug

Til de fleste formål betragtes ASCII stort set som en ældre standard. Selv i situationer, der kun understøtter det latinske skrift-hvor fuld støtte til kompleksiteten af ​​Unicode f.eks. Er unødvendig-er det normalt mere bekvemt at bruge UTF-8 og drage fordel af dets ASCII-kompatibilitet.

hvordan finder du din wifi -adgangskode på Android

Især skal websider gemmes og overføres ved hjælp af UTF-8, som er standard for HTML5. Dette er i modsætning til det tidligere web, der som standard behandlede ASCII, før det blev afløst af Latin 1.

En standard, der ændrer sig

Den sidste revision af ASCII fandt sted i 1986.

I modsætning hertil opdateres Unicode årligt. Nye scripts, tegn og især nye emoji tilføjes regelmæssigt. Med kun en lille brøkdel af disse tildelt vil det fulde tegnsæt sandsynligvis vokse og vokse i en overskuelig fremtid.

Relaterede: De 100 mest populære emojier forklaret

ASCII versus Unicode

ASCII tjente sit formål i mange årtier, men Unicode har nu effektivt erstattet det til alle andre praktiske formål end ældre systemer. Unicode er større og dermed mere udtryksfuld. Det repræsenterer en verdensomspændende, samarbejdsindsats og tilbyder langt større fleksibilitet, omend på bekostning af en vis kompleksitet.

Del Del Tweet E -mail Hvad er ASCII -tekst, og hvordan bruges den?

ASCII -tekst fremstår kryptisk, men den har mange anvendelsesmuligheder på Internettet.

Læs Næste
Relaterede emner
  • Teknologi forklaret
  • Emojis
  • Jargon
  • Webkultur
  • Unicode
Om forfatteren Bobby Jack(58 artikler udgivet)

Bobby er en teknologientusiast, der arbejdede som softwareudvikler i det meste af to årtier. Han brænder for spil, arbejder som Reviews Editor hos Switch Player Magazine og er nedsænket i alle aspekter af onlineudgivelse og webudvikling.

Mere fra Bobby Jack

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere