Az ASCII és az Unicode egyaránt a szöveg digitális megjelenítésére utal, különös tekintettel a szöveget alkotó karakterekre. A két szabvány azonban jelentősen különbözik egymástól, sok tulajdonság tükrözi létrehozásuk sorrendjét.

Amerika az Univerzummal szemben

Az amerikai szabványos információcsere-kódex (ASCII) nem meglepő módon az amerikai közönséget szolgálja, angol ábécébe írva. Nem hangsúlyos betűkkel, például A-Z és a-z, valamint kis számú írásjelekkel és vezérlő karakterekkel foglalkozik.

Különösen nincs mód a más nyelvekből átvett kölcsönszavak, például a kávézó az ASCII-ben, anélkül, hogy ékezetes karakterekkel helyettesítenénk őket (pl. kávézó). A lokalizált ASCII kiterjesztéseket úgy fejlesztették ki, hogy kielégítsék a különböző nyelvek igényeit, de ezek az erőfeszítések kínossá tették az interoperabilitást, és egyértelműen kiterjesztették az ASCII képességeit.

Ezzel szemben az univerzális kódolt karakterkészlet (Unicode) az ambícióskála másik végén helyezkedik el. Az Unicode megpróbálja a lehető legtöbb írói rendszert kiszolgálni, olyan mértékben, hogy az az ősi nyelvekre és mindenki kedvenc kifejező szimbólumkészletére, az emoji-ra terjed ki.

instagram viewer

Karakterkészlet vagy karakterkódolás?

Egyszerűen fogalmazva: a karakterkészlet a karakterek (például A-Z) válogatása, míg a karakter a kódolás egy karakterkészlet és egy digitálisan ábrázolható érték közötti leképezés (pl. A = 1, B = 2).

Az ASCII szabvány gyakorlatilag mindkettő: meghatározza az általa képviselt karakterkészletet, és módszert kínál az egyes karakterek numerikus értékekhez való hozzárendelésére.

Ezzel szemben az Unicode szót több különböző összefüggésben használják, különböző dolgokat jelentenek. Úgy gondolhat rá, mint egy mindent átfogó kifejezésre, mint például az ASCII, egy karakterkészletre és számos kódolásra utalva. Mivel azonban több kódolás létezik, az Unicode kifejezést gyakran a teljes karakterkészletre utalják, nem pedig annak leképezésére.

Méret

Terjedelme miatt az Unicode sokkal több karaktert képvisel, mint az ASCII. A standard ASCII 7 bites tartományt használ 128 különálló kódolásához karakterek. Az Unicode viszont olyan nagy, hogy különböző terminológiát kell használnunk, csak hogy beszéljünk róla!

Az Unicode 1 111 998 címezhetőre képes kódpontok. A kódpont nagyjából hasonlít egy karakter számára fenntartott szóközhöz, de ennél sokkal bonyolultabb a helyzet, amikor elkezded elmélyülni a részleteket!

Hasznosabb összehasonlítás, hogy jelenleg hány szkript (vagy írórendszer) támogatott. Természetesen az ASCII csak az angol ábécét kezeli, lényegében a latin vagy a római betűt. Az Unicode 2020-ban gyártott verziója sokkal tovább megy: összesen 154 szkript támogatását tartalmazza.

Tárolás

Az ASCII 7 bites tartománya azt jelenti, hogy minden karakter egyetlen 8 bites bájtban van tárolva; a tartalék bit nincs felhasználva a szokásos ASCII-ben. Ez a méretszámításokat elenyészővé teszi: a szöveg hossza karakterben a fájl bájtban megadott mérete.

Ezt a következő bash parancssorral erősítheti meg. Először létrehozunk egy fájlt, amely 12 betű szöveget tartalmaz:

$ echo -n 'Hello, world'> foo

Ellenőrizhetjük, hogy a szöveg ASCII kódolásban van-e, használhatjuk a fájl parancs:

$ file foo
foo: ASCII szöveg, vonalzárók nélkül

Végül a fájl által elfoglalt bájtok pontos számának megadásához a statisztika parancs:

$ stat -f% z foo
12

Mivel az Unicode szabvány sokkal nagyobb karaktertartománnyal foglalkozik, az Unicode fájl természetesen több tárhelyet foglal el. Pontosan mennyi függ a kódolástól.

Az előző parancsok ugyanazon sorozatának megismétlése az ASCII-ben nem ábrázolható karakter használatával a következőket eredményezi:

$ echo -n '€'> foo
$ file foo
foo: UTF-8 Unicode szöveg, vonalzárók nélkül
$ stat -f% z foo
3

Ez az egyetlen karakter 3 bájtot foglal el egy Unicode fájlban. Ne feledje, hogy a bash automatikusan létrehozott egy UTF-8 fájlt, mivel az ASCII fájl nem tudja tárolni a választott karaktert (€). Az UTF-8 messze a leggyakoribb karakterkódolás az Unicode számára; Az UTF-16 és az UTF-32 két alternatív kódolás, de sokkal kevésbé használják őket.

Az UTF-8 egy változó szélességű kódolás, ami azt jelenti, hogy különböző mennyiségű tárhelyet használ különböző kódpontokhoz. Minden kódpont egy és négy bájt közötti helyet foglal el, azzal a szándékkal, hogy a gyakoribb karakterek kevesebb helyet igényeljenek, egyfajta beépített tömörítést biztosítva. Hátránya, hogy az adott szövegrész hosszának vagy méretének követelményeinek meghatározása sokkal bonyolultabbá válik.

Az ASCII Unicode, de az Unicode nem ASCII

A visszamenőleges kompatibilitás érdekében az első 128 Unicode kódpont az egyenértékű ASCII karaktereket jelenti. Mivel az UTF-8 ezeket a karaktereket egyetlen bájttal kódolja, minden ASCII szöveg UTF-8 szöveg is. Az Unicode az ASCII szuperhalmaza.

Amint azonban a fentiekből látható, sok Unicode fájl nem használható ASCII kontextusban. Bármely, a határtalan karakteren kívül eső karakter váratlan módon jelenik meg, gyakran helyettesített karakterekkel, amelyek teljesen eltérnek a tervezettől.

Modern használat

A legtöbb célból az ASCII-t nagyrészt örökölt szabványnak tekintik. Még olyan helyzetekben is, amelyek csak a latin betűket támogatják - ahol az Unicode komplexitása teljes mértékben támogatott például felesleges - általában kényelmesebb használni az UTF-8-at és kihasználni annak ASCII-jét kompatibilitás.

Különösen a weboldalakat kell elmenteni és továbbítani az UTF-8 használatával, amely a HTML5 alapértelmezett értéke. Ez ellentétben áll a korábbi internettel, amely alapértelmezés szerint az ASCII-ben foglalkozott, mielőtt ezt a Latin 1 felváltotta.

Egy változó szabvány

Az ASCII utolsó felülvizsgálatára 1986-ban került sor.

Ezzel szemben az Unicode-ot továbbra is évente frissítik. Rendszeresen új szkripteket, karaktereket és különösen új hangulatjeleket adnak hozzá. Ha ezeknek csak kis részét osztják ki, a teljes karakterkészlet belátható időn belül valószínűleg növekszik és növekszik.

Összefüggő: A 100 legnépszerűbb magyarázat

A 100 legnépszerűbb magyarázat

Annyi hangulatjel van, nehéz lehet tudni, hogy mindez mit jelent. Itt vannak a legnépszerűbb emojik.

ASCII Versus Unicode

Az ASCII hosszú évtizedekig szolgálta a célját, de az Unicode mára hatékonyan felváltotta a gyakorlati rendszerek kivételével minden gyakorlati célra. Az Unicode nagyobb és ennélfogva kifejezőbb. Világszerte együttműködési erőfeszítéseket jelent, és sokkal nagyobb rugalmasságot kínál, bár némi bonyolultság rovására.

Email
Mi az ASCII szöveg és hogyan használják?

Az ASCII szöveg rejtélyesnek tűnik, de sok felhasználási lehetősége van az interneten.

Kapcsolódó témák
  • Technológia magyarázata
  • Hangulatjelek
  • Szakmai nyelv
  • Webkultúra
  • Unicode
A szerzőről
Bobby Jack (23 cikk megjelent)

Bobby technológiai rajongó, aki szoftverfejlesztőként dolgozott a két évtized alatt. Szenvedélyesen játszik a játékokkal, a Switch Player Magazine Véleményszerkesztőjeként dolgozik, és elmerül az online kiadványok és webfejlesztés minden aspektusában.

Tovább Bobby Jack-től

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.