Vad är skillnaden mellan ASCII och Unicode Text?

Vad är skillnaden mellan ASCII och Unicode Text?

ASCII och Unicode är båda standarder som hänvisar till digital representation av text, särskilt tecken som utgör text. De två standarderna är dock väsentligt olika, med många egenskaper som återspeglar deras respektive skapelseordning.





Amerika mot universum

American Standard Code for Information Interchange (ASCII) vänder sig inte överraskande till en amerikansk publik och skriver i det engelska alfabetet. Det handlar om obekräftade bokstäver, till exempel A-Z och a-z, plus ett litet antal skiljetecken och kontrolltecken.





I synnerhet finns det inget sätt att representera lånord som antagits från andra språk, t.ex. kaffe i ASCII, utan att anglicisera dem genom att ersätta accenttecken (t.ex. Kafé ). Lokaliserade ASCII -tillägg utvecklades för att tillgodose olika språks behov, men dessa ansträngningar gjorde interoperabiliteten besvärlig och sträckte klart ASCII: s kapacitet.





Däremot ligger Universal Coded Character Set (Unicode) i motsatta änden av ambitionsskalan. Unicode försöker tillgodose så många av världens skrivsystem som möjligt, i den mån det täcker gamla språk och allas favorituppsättning uttrycksfulla symboler, emoji.

Teckenuppsättning eller teckenkodning?

Enkelt uttryckt är en teckenuppsättning ett urval av tecken (t.ex. A-Z) medan en teckenkodning är en mappning mellan en teckenuppsättning och ett värde som kan representeras digitalt (t.ex. A = 1, B = 2).



ASCII -standarden är effektivt båda: den definierar uppsättningen tecken som den representerar och en metod för att mappa varje tecken till ett numeriskt värde.

Däremot används ordet Unicode i flera olika sammanhang för att betyda olika saker. Du kan se det som en alltomfattande term, som ASCII, att hänvisa till en teckenuppsättning och ett antal kodningar. Men eftersom det finns flera kodningar används termen Unicode ofta för att referera till den övergripande uppsättningen tecken, snarare än hur de mappas.





Storlek

På grund av dess omfattning representerar Unicode mycket fler tecken än ASCII. Standard ASCII använder ett 7-bitars intervall för att koda 128 distinkta tecken . Unicode, å andra sidan, är så stort att vi måste använda olika terminologi bara för att prata om det!

Unicode tillgodoser 1111998 adresserbara kodpunkter. En kodpunkt är ungefär analog med ett utrymme som är reserverat för ett tecken, men situationen är mycket mer komplicerad än så när du börjar fördjupa dig i detaljerna!





En mer användbar jämförelse är hur många skript (eller skrivsystem) som för närvarande stöds. Naturligtvis hanterar ASCII bara det engelska alfabetet, i huvudsak det latinska eller romerska skriften. Den version av Unicode som producerades 2020 går mycket längre: den innehåller stöd för totalt 154 skript.

Lagring

ASCII: s 7-bitars intervall innebär att varje tecken lagras i en enda 8-bitars byte; reservbiten är oanvänd i standard ASCII. Detta gör storleksberäkningar triviala: textlängden, i tecken, är filens storlek i byte.

Du kan bekräfta detta med följande sekvens av bash -kommandon. Först skapar vi en fil som innehåller 12 bokstäver text:

hur man öppnar psd -fil utan photoshop
$ echo -n 'Hello, world' > foo

För att kontrollera att texten finns i ASCII -kodningen kan vi använda fil kommando:

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

Slutligen, för att få det exakta antalet byte som filen upptar, använder vi stat kommando:

$ stat -f%z foo
12

Eftersom Unicode -standarden behandlar ett mycket större antal tecken tar en Unicode -fil naturligtvis mer lagringsutrymme. Exakt hur mycket beror på kodningen.

Att upprepa samma uppsättning kommandon från tidigare med ett tecken som inte kan representeras i ASCII ger följande:

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

Det enda tecknet upptar 3 byte i en Unicode -fil. Observera att bash automatiskt skapade en UTF-8-fil eftersom en ASCII-fil inte kan lagra det valda tecknet (€). UTF-8 är den överlägset vanligaste teckenkodningen för Unicode; UTF-16 och UTF-32 är två alternativa kodningar, men de används mycket mindre.

UTF-8 är en kodning med variabel bredd, vilket innebär att den använder olika mängder lagring för olika kodpunkter. Varje kodpunkt kommer att uppta mellan en och fyra byte, med avsikt att mer vanliga tecken kräver mindre utrymme, vilket ger en typ av inbyggd komprimering. Nackdelen är att det blir mycket mer komplicerat att bestämma längd- eller storlekskraven för en viss bit text.

ASCII är Unicode, men Unicode är inte ASCII

För bakåtkompatibilitet representerar de första 128 Unicode -kodpunkterna motsvarande ASCII -tecken. Eftersom UTF-8 kodar var och en av dessa tecken med en enda byte, är vilken ASCII-text också en UTF-8-text. Unicode är en superset av ASCII.

Som visas ovan kan dock många Unicode -filer inte användas i ett ASCII -sammanhang. Alla tecken som ligger utanför gränserna kommer att visas på ett oväntat sätt, ofta med ersatta tecken som är helt annorlunda än de som var avsedda.

Modern användning

För de flesta ändamål anses ASCII till stor del vara en äldre standard. Även i situationer som bara stöder det latinska skriptet-där fullt stöd för komplexiteten i Unicode till exempel är onödigt-är det vanligtvis mer bekvämt att använda UTF-8 och dra nytta av dess ASCII-kompatibilitet.

hur man får roblox på chromebook

I synnerhet bör webbsidor sparas och överföras med UTF-8, som är standard för HTML5. Detta står i kontrast till den tidigare webben, som behandlades i ASCII som standard innan den ersattes av Latin 1.

En standard som förändras

Den senaste översynen av ASCII ägde rum 1986.

Däremot fortsätter Unicode att uppdateras årligen. Nya skript, karaktärer och i synnerhet nya emoji läggs till regelbundet. Med endast en liten bråkdel av dessa tilldelade kommer hela teckenuppsättningen sannolikt att växa och växa under överskådlig framtid.

Relaterad: De 100 mest populära emojierna förklarade

ASCII mot Unicode

ASCII tjänade sitt syfte i många decennier, men Unicode har nu effektivt ersatt det för alla andra praktiska ändamål än äldre system. Unicode är större och därmed mer uttrycksfull. Det representerar ett globalt samarbetsarbete och erbjuder mycket större flexibilitet, om än på bekostnad av viss komplexitet.

Dela med sig Dela med sig Tweet E-post Vad är ASCII -text och hur används den?

ASCII -text verkar kryptisk, men den har många användningsområden på internet.

Läs Nästa
Relaterade ämnen
  • Teknik förklaras
  • Emojis
  • Jargong
  • Webbkultur
  • Unicode
Om författaren Bobby Jack(58 artiklar publicerade)

Bobby är en teknikentusiast som arbetade som mjukvaruutvecklare i de flesta av två decennier. Han brinner för spel, jobbar som recensioner -redaktör på Switch Player Magazine och är fördjupad i alla aspekter av online -publicering och webbutveckling.

Mer från Bobby Jack

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera