Kódovanie globálnej digitálnej komunikácie UTF-8 - IONOS
Každý, kto číta webovú stránku v angličtine alebo v japonskom e-maile, nielenže hovorí týmito jazykmi, ale je tiež veľmi pravdepodobne svedkom víťazného postupu UTF-8. „UTF-8“ je skratka pre „8-bitový formát transformácie UCS " a predstavuje najrozšírenejšie kódovanie znakov v sieti WWW. Medzinárodný štandard Unicode zaznamenáva všetky jazykové znaky a textové prvky v (takmer) všetkých jazykoch sveta na spracovanie EDP. UTF-8 hrá hlavnú úlohu v znakovej sade Unicode.

- Vývoj kódovania UTF-8
- Problémy pred zavedením UTF-8
- Vytvorenie UTF-8
- UTF-8 v znakovej sade Unicode: štandard pre všetky jazyky
- Alternatívy: UTF-32 a UTF-16
- Efektívne a škálovateľné: UTF-8
- Základy: kódovanie a zloženie UTF-8
- Konverzia hexadecimálneho kódu Unicode na binárny kód UTF-8
- UTF-8 v editore
- Záver: Kódovanie UTF-8 zlepšuje medzinárodnú komunikáciu
Vývoj kódovania UTF-8
UTF-8 je kódovanie znakov. Každému existujúcemu znaku Unicode priradí presne určitú postupnosť bitov, ktorú je možné prečítať aj ako binárne číslo. To znamená: UTF-8 priraďuje pevné binárne číslo všetkým písmenám, číslam a symbolom v rastúcom počte jazykov. Medzinárodné organizácie, pre ktoré sú internetové štandardy dôležité a ktoré chcú podľa toho ustanoviť, sa usilujú o to, aby bol UTF-8 nespochybniteľným lídrom v kódovaní. Okrem iného aj to W3C rovnako ako Pracovná skupina pre internetové inžinierstvo postav sa za to. V skutočnosti už v roku 2009 väčšina webových stránok na svete používala kódovanie UTF-8. V marci 2018 podľa správy W3Techs používalo toto kódovanie znakov 90,9 percent všetkých existujúcich webových stránok.
Problémy pred zavedením UTF-8
Rôzne oblasti so súvisiacimi jazykmi a systémami písania majú svoje vlastné vlastné štandardy kódovania vyvinuté, pretože mali odlišné potreby. Napríklad v anglicky hovoriacich krajinách stačilo kódovanie ASCII, ktorého štruktúra umožňuje priradiť 128 znakov k počítačovo čitateľnému znakovému reťazcu. Ázijské písma alebo azbuka však používajú jedinečnejšie jednotlivé znaky. V ASCII chýbajú aj nemecké prehlásky (napríklad písmeno ä). Okrem toho je možné duplikovať priradenia rôznych kódovaní. Výsledkom bolo, že napríklad dokument napísaný v ruštine sa zobrazil na americkom počítači pomocou latinských písmen priradených v tomto systéme namiesto písmen cyriliky. Výsledný gýč sťažila medzinárodnú komunikáciu značné.
Vytvorenie UTF-8
Na vyriešenie tohto problému vyvinul Joseph D. Becker v rokoch 1988 až 1991 univerzálnu znakovú sadu Unicode pre Xerox. Od roku 1992 existovalo aj konzorcium odvetvia IT X/otvorené hľadá systém, ktorý by mal nahradiť ASCII a rozšíriť repertoár postáv. Napriek tomu by kódovanie malo zostať kompatibilné s ASCII. Túto požiadavku nesplnilo prvé kódovanie s názvom UCS-2, ktoré jednoducho prenieslo čísla znakov na 16-bitové hodnoty. UTF-1 tiež zlyhal, pretože priradenia Unicode sa čiastočne zrazili s existujúcimi priradeniami znakov ASCII. Server, ktorý bol nastavený na ASCII, niekedy vydáva nesprávne znaky. To bol významný problém, pretože ho v tom čase využívala väčšina anglicky hovoriacich počítačov. Ďalší krok bol v Formát transformácie bezpečný pre súborový systém UCS (FSS-UTF) z Dave Prosser, čím sa odstránilo prekrytie znakmi ASCII.
V auguste toho istého roku sa návrh dostal do kruhov v odborných kruhoch. Spoluzakladatelia Unixu pracovali v laboratóriách Bell Labs, ktoré sú známe mnohými nositeľmi Nobelovej ceny Ken Thompson a Rob Pike na pláne operačného systému 9. Uplatnili Prosserov nápad, vyvinuli samosynchronizujúce kódovanie (každý znak označuje, koľko bitov potrebuje) a stanovili pravidlá pre priraďovanie písmen, ktoré by mohli byť v kóde zobrazené inak (príklad: „ä „Ako samostatný symbol alebo„ a + ¨ “). Úspešne použili kódovanie pre svoj operačný systém a predstavili ho zodpovedným osobám. S tým bol FSS-UTF, dnes známy ako „UTF-8“, v podstate kompletný.
UTF-8 je 8-bitové kódovanie znakov pre Unicode. Skratka „UTF-8“ znamená „8-bit Universal Character Set Transformation Format“ v angličtine: „Universal 8-Bit Character Set Transformation Format“. Jeden až štyri bajty, z ktorých každý pozostáva z ôsmich bitov, tvoria počítačom čitateľné binárne číslo. Toto priradí kódovanie jazykovému znaku alebo inému textovému prvku. Samosynchronizačná štruktúra a potenciál generovať 2 21 binárnych čísel umožňujú nezameniteľné priradenie každého jedného jazykového a textového prvku všetkým jazykom na svete.
UTF-8 v znakovej sade Unicode: štandard pre všetky jazyky
Kódovanie UTF-8 je transformačný formát v rámci štandardu Unicode. Medzinárodná norma ISO 10646 vo veľkej miere definuje Unicode, ktorý sa tam nazýva „Universal Coded Character Set“. Vývojári systému Unicode obmedzujú určité parametre na praktické použitie. Cieľom tejto normy je zabezpečiť medzinárodne jednotné a kompatibilné kódovanie znakov a textových prvkov. Keď bol Unicode zavedený v roku 1991, definoval 24 moderných systémov písania a symboly mien na spracovanie údajov. V júni 2017 ich bolo 139.
Existujú rôzne formáty transformácie Unicode, alebo skrátene „UTF“, ktoré sú možné 1 114 112 Kódové body množiť sa. Prevažovali tri formáty: UTF-8, UTF-16 a UTF-32. Ostatné kódovania ako UTF-7 alebo SCSU majú tiež svoje výhody, ale stále sa nedokázali presadiť.
Unicode je rozdelený do 17 úrovní, z ktorých každá má 65 536 znakov. Úroveň sa skladá zo 16 stĺpcov a 16 riadkov. Prvá úroveň, „Základné viacjazyčné lietadlo " (Úroveň 0) obsahuje veľkú časť systémov písania, ktoré sa v súčasnosti používajú na svete, ako aj interpunkčné znamienka, kontrolné značky a symboly. Momentálne sa používa päť ďalších úrovní:
- Doplnková viacjazyčná rovina (úroveň 1): historické systémy písania, zriedka používané znaky
- Doplnkové ideografické lietadlo (úroveň 2): zriedkavé znaky CJK („čínština, japončina, kórejčina“)
- Doplnková špeciálna rovina (úroveň 14): jednotlivé ovládacie znaky
- Doplnková oblasť súkromného použitia - A (úroveň 15): súkromné použitie
- Doplnková oblasť na súkromné použitie - B (úroveň 16): súkromné použitie
Kódovanie UTF umožňuje prístup ku všetkým znakom Unicode. Pre určité oblasti použitia sa odporúčajú príslušné vlastnosti.
Alternatívy: UTF-32 a UTF-16
UTF-32 vždy pracuje s 32 bitmi, t. J. 4 bajtmi. Jednoduchá štruktúra zvyšuje čitateľnosť formátu. V jazykoch, ktoré používajú hlavne latinskú abecedu, a teda iba prvých 128 znakov, zaberá kódovanie oveľa viac pamäte, ako je potrebné (4 namiesto 1 bajtu).
UTF-16 sa etabloval ako formát zobrazenia v operačných systémoch ako Apple macOS a Microsoft Windows. Používa sa tiež v mnohých rámcoch pre vývoj softvéru. Je to jeden z najstarších UTF, ktorý sa stále používa. Jeho štruktúra je zvlášť vhodná na kódovanie znakov, ktoré nie sú latinské, šetriace pamäť. Väčšina znakov môže byť reprezentovaná v 2 bajtoch (16 bitov), iba pri zriedkavých znakoch je dĺžka zdvojnásobená na 4 bajty.
Efektívne a škálovateľné: UTF-8
UTF-8 sa skladá z až štyri bitové reťazce, každý pozostáva z 8 bitov. Predchodca ASCII pozostáva však z bitovej reťaze so 7 bitmi. Obidve kódovania ukladali prvých 128 kódovaných znakov zhodný pevne. Znaky, ktoré pochádzajú hlavne z anglicky hovoriaceho sveta, sú pokryté jedným bajtom. Pre jazyky s latinskou abecedou tento formát využíva pamäť najefektívnejšie. Operačné systémy Unix a Linux ho používajú interne, v spojení s ním však hrá najdôležitejšiu úlohu UTF-8 Internetové aplikácie, a to najmä pri zobrazovaní textu na webe alebo v e-mailoch.
vďaka samosynchronizačná štruktúra čitateľnosť je zachovaná aj napriek variabilnej dĺžke na znak. Bez obmedzení Unicode by UTF-8 (= 4,398,046,511,104) umožňoval priradenie znakov. Z dôvodu obmedzenia na 4 bajty v Unicode je to skutočne 2 21, čo je viac ako dostatočné. Aj oblasť Unicode má pre mnohé ďalšie systémy na písanie prázdne úrovne. Presné zadanie zabraňuje prekrytiu kódového bodu, ktoré v minulosti obmedzovali komunikáciu. Zatiaľ čo UTF-16 a UTF-32 umožňujú aj presné priradenie, UTF-8 využíva pamäťový priestor v systéme písania latinčiny obzvlášť efektívne a je navrhnutý tak, aby rôzne systémy písania mohli koexistovať a boli pokryté bez akýchkoľvek problémov. To umožňuje ich súčasné, zmysluplné zobrazenie v textovom poli bez problémov s kompatibilitou.
Základy: kódovanie a zloženie UTF-8
Kódovanie UTF-8 zaujme na jednej strane spätnou kompatibilitou s ASCII a na druhej strane samosynchronizačnou štruktúrou, ktorá vývojárom uľahčuje následnú identifikáciu zdrojov chýb. Pre každého ASCII znaky používa UTF iba 1 bajt. Celkový počet bitových reťazcov je možné zistiť z prvých číslic binárneho čísla. Pretože kód ASCII má iba 7 bitov, prvá číslica je Kódové číslo 0. 0 vyplní pamäťový priestor na celý bajt a signalizuje začiatok a Reťaz bez nadväzujúcich reťazí. Napríklad názov „UTF-8“ by bol vyjadrený ako binárne číslo zakódované v UTF-8 takto:
01010101
01010100
01000110
00101101
00111000
Kódovanie UTF-8 priraďuje znaky ASCII, ako sú tie, ktoré sú použité v tabuľke, k jedinému bitovému reťazcu. Všetky nasledujúce znaky a symboly v rámci Unicode majú dva až štyri 8-bitové reťazce. Prvý reťazec je tzv Počiatočný bajt, ďalšie reťazce sú Následné bajty. Počiatočné bajty s pokračujúcimi bajtami vždy začínajú 11. Pokračovacie bajty však vždy začínajú 10. Ak hľadáte určitý bod v kóde ručne, rozpoznáte preto začiatok kódovaného znaku podľa značiek 0 a 11. Prvý tlačiteľný viac -Bajtový znak je obrátený výkričník:
11000010 10100001
Predpona kódovanie zabráni kódovaniu iného znaku v rámci bajtového reťazca. Ak sa bajtový tok začína uprostred dokumentu, počítač bude stále správne zobrazovať čitateľné znaky, pretože nezmapuje ani neúplné znaky. Ak hľadáte začiatok znaku, štvorbajtový limit znamená, že sa v ľubovoľnom bode musíte vrátiť maximálne o tri bajtové reťazce, aby ste našli začiatočný bajt.
Ďalším štrukturujúcim prvkom: Počet jednotiek na začiatku počiatočného bajtu označuje značku Dĺžka bajtového reťazca. Ako je uvedené vyššie, 110xxxxx znamená 2 bajty. 1110xxxx znamená 3 bajty, 11110xxx znamená 4 bajty. V Unicode zodpovedá priradená hodnota bajtu číslu znaku, čo umožňuje lexikálne usporiadanie. Existujú však medzery. Oblasť Unicode U + 007F až U + 009F obsahuje nepriradené kontrolné čísla. Štandard UTF-8 tam nepriraďuje žiadne tlačiteľné znaky, iba príkazy.
Ako už bolo spomenuté, kódovanie UTF-8 môže teoreticky spojiť až osem bajtových reťazcov. Unicode však stanovuje maximálnu dĺžku 4 bajty. Na jednej strane to má za následok, že bajtové reťazce s 5 a viac bajtmi sú predvolene neplatné. Na druhej strane toto obmedzenie odráža snahu o kódovanie, ako je to možné kompaktný - Takže s malou pamäťovou stopou - a ak je to možné štruktúrované mapa. Základné pravidlo pri používaní UTF-8 je, že najkratšie možné kódovanie by sa mali použiť. Napríklad písmeno ä je kódované pomocou 2 bajtov: 11000011 10100100. Teoreticky je možné kombinovať body kódu pre písmeno a (01100001) a symbol diäresis ¨ (11001100 10001000) tak, aby predstavovali ä: 01100001 11001100 10001000. Tento formulár UTF-8 sa však považuje za príliš dlhé kódovanie, a preto nie je povolený.
Toto pravidlo je dôvod, že sekvencie bajtov začínajúce sa 192 a 193 nie sú povolené. Je to tak preto, lebo potenciálne predstavujú znaky v rozsahu ASCII (0-127) s 2 bajtmi, ktoré sú už kódované 1 bajtom.
Niektoré rozsahy hodnôt Unicode neboli definované pre UTF-8, pretože sú k dispozícii pre náhrady UTF-16. Prehľad ukazuje, ktoré bajty v UTF-8 pod kódom Unicode podľa Internet Engineering Task Force (IETF) as prípustný použiť (oblasti označené zelenou farbou sú platné bajty, oblasti označené červenou farbou sú neplatné).
Konverzia hexadecimálneho kódu Unicode na binárny kód UTF-8
Počítače čítajú iba binárne čísla, ľudia používajú desatinnú sústavu. Toto je rozhranie medzi týmito formami Hexadecimálny systém. Pomáha to kompaktným spôsobom ukázať dlhé reťaze. Používa číslice 0 až 9 a písmená A až F a funguje na základe čísla 16. Ako štvrtá mocnina z 2 je hexadecimálny systém na predstavovanie osemciferných bajtových oblastí lepší ako desatinný systém. Hexadecimálna číslica znamená reťazec štyroch („okusovať“) v oktete. Bajt s ôsmimi binárnymi číslicami možno preto reprezentovať iba dvoma hexadecimálnymi číslicami. Unicode používa hexadecimálny systém pre Pozícia postavy opísať v rámci vlastného systému. Z toho sa dá vypočítať binárne číslo a nakoniec bod kódu UTF-8.
Najskôr je potrebné previesť binárne číslo z hexadecimálneho čísla. Potom vložíte kódové body do štruktúry kódovania UTF-8. Na uľahčenie štruktúrovania použite nasledujúce Prehľad, ktorá ukazuje, koľko kódových bodov sa zmestí do bajtového reťazca a akú štruktúru môžete očakávať, v ktorom rozsahu hodnôt Unicode.