řídicí znaky ascii. Kódování ASCII (americký standardní kód pro výměnu informací) - základní kódování textu pro latinku

Podle Mezinárodní telekomunikační unie v roce 2016 používalo internet s určitou pravidelností tři a půl miliardy lidí. Většinu z nich ani nenapadne, že všechny zprávy, které posílají přes PC nebo mobilní gadgety, stejně jako texty, které se zobrazují na všech možných monitorech, jsou ve skutečnosti kombinace 0 a 1. Tato reprezentace informací se nazývá kódování . Zajišťuje a výrazně usnadňuje jeho skladování, zpracování a přenos. V roce 1963 bylo vyvinuto americké kódování ASCII, které je předmětem tohoto článku.

Prezentace informací na počítači

Z pohledu každého elektronického počítače je text souborem jednotlivých znaků. Patří mezi ně nejen písmena, včetně velkých, ale také interpunkční znaménka a čísla. Kromě toho se používají speciální znaky „=“, „&“, „(“ a mezery.

Soubor znaků, které tvoří text, se nazývá abeceda a jejich počet se nazývá mohutnost (označuje se jako N). K jeho určení se používá výraz N = 2^b, kde b je počet bitů nebo informační váha konkrétního symbolu.

Je dokázáno, že abeceda s kapacitou 256 znaků může zastupovat všechny potřebné znaky.

Protože 256 představuje 8. mocninu dvojky, váha každého znaku je 8 bitů.

Jednotka měření 8 bitů se nazývá 1 byte, takže je zvykem říkat, že jakýkoli znak v textu uloženém v počítači zabírá jeden bajt paměti.

Jak se provádí kódování?

Jakékoli texty se zadávají do paměti osobního počítače pomocí kláves klávesnice, na které se píší čísla, písmena, interpunkční znaménka a další symboly. Jsou přenášeny do RAM v binárním kódu, tj. každý znak je spojen s desítkovým kódem známým lidem, od 0 do 255, což odpovídá binárnímu kódu - od 00000000 do 11111111.

Bajtové kódování znaků umožňuje procesoru provádějícímu zpracování textu přistupovat ke každému znaku jednotlivě. 256 znaků je přitom dostačujících k reprezentaci jakékoli symbolické informace.

ASCII kódování znaků

Tato zkratka v angličtině znamená kód pro výměnu informací.

Dokonce i na úsvitu komputerizace bylo zřejmé, že je možné vymyslet širokou škálu způsobů kódování informací. Pro přenos informací z jednoho počítače do druhého však bylo nutné vyvinout jednotný standard. V roce 1963 se tedy v USA objevila kódovací tabulka ASCII. V něm je jakýkoli symbol počítačové abecedy spojen s jeho sériovým číslem v binárním vyjádření. ASCII se původně používalo pouze ve Spojených státech a později se stalo mezinárodním standardem pro PC.

ASCII kódy jsou rozděleny do 2 částí. Pouze první polovina této tabulky je považována za mezinárodní standard. Obsahuje znaky se sériovými čísly od 0 (kódované jako 00000000) do 127 (kódované 01111111).

Sériové číslo

ASCII kódování textu

Symbol

0000 0000 - 0001 1111

Znaky s N od 0 do 31 se nazývají řídicí znaky. Jejich funkcí je „řídit“ proces zobrazování textu na monitoru nebo tiskovém zařízení, vydávání zvukového signálu atd.

0010 0000 - 0111 1111

Znaky od N od 32 do 127 (standardní část tabulky) - velká a malá písmena latinské abecedy, 10. číslice, interpunkční znaménka, stejně jako různé závorky, obchodní a jiné symboly. Znak 32 představuje mezeru.

1000 0000 - 1111 1111

Znaky s N od 128 do 255 (alternativní část tabulky nebo kódové stránky) mohou mít různé varianty, z nichž každá má své číslo. Kódová stránka se používá k určení národních abeced, které se liší od latinky. Zejména s jeho pomocí se provádí kódování ASCII pro ruské znaky.

V tabulce jsou kódování velká a následují za sebou v abecedním pořadí a čísla jsou ve vzestupném pořadí. Tento princip zůstává stejný pro ruskou abecedu.

Řídící znaky

Kódovací tabulka ASCII byla původně vytvořena pro příjem a přenos informací prostřednictvím zařízení, které se dlouho nepoužívalo, jako je například dálnopis. V tomto ohledu byly do znakové sady zahrnuty netisknutelné znaky, používané jako příkazy k ovládání tohoto zařízení. Podobné příkazy byly použity v takových předpočítačových metodách zasílání zpráv, jako je Morseova abeceda atd.

Nejběžnějším dálnopisným znakem je NUL (00). Ve většině programovacích jazyků se stále používá k označení konce řádku.

Kde se používá kódování ASCII?

Americký standardní kód je potřebný nejen pro zadávání textových informací na klávesnici. Používá se také v grafice. Zejména v ASCII Art Maker představují obrázky různých rozšíření spektrum ASCII znaků.

Existují dva typy takových produktů: ty, které plní funkci grafických editorů převáděním obrázků na text, a ty, které převádějí „kresby“ do grafiky ASCII. Například slavný emotikon je ukázkovým příkladem kódovacího symbolu.

ASCII lze také použít při vytváření dokumentu HTML. V tomto případě můžete zadat určitou sadu znaků a při prohlížení stránky se na obrazovce objeví symbol, který odpovídá tomuto kódu.

ASCII je také nezbytné pro vytváření vícejazyčných webových stránek, protože znaky, které nejsou zahrnuty v konkrétní národní tabulce, jsou nahrazeny kódy ASCII.

Některé funkce

ASCII se původně používalo ke kódování textových informací pomocí 7 bitů (jeden byl ponechán prázdný), ale dnes funguje jako 8 bitů.

Písmena umístěná ve sloupcích umístěných nahoře a dole se od sebe liší pouze jedním bitem. To výrazně snižuje složitost auditu.

Použití ASCII v Microsoft Office

V případě potřeby lze tento typ kódování textových informací použít v textových editorech společnosti Microsoft, jako je Poznámkový blok a Office Word. Některé funkce však v tomto případě při psaní možná nebudete moci používat. Nebudete například moci použít tučný text, protože kódování ASCII pouze zachovává význam informace a ignoruje její celkový vzhled a formu.

Standardizace

Organizace ISO přijala standardy ISO 8859 Tato skupina definuje osmibitové kódování pro různé jazykové skupiny. Konkrétně ISO 8859-1 je rozšířená tabulka ASCII pro Spojené státy americké a země západní Evropy. A ISO 8859-5 je tabulka používaná pro azbuku, včetně ruského jazyka.

Z řady historických důvodů byla norma ISO 8859-5 používána velmi krátkou dobu.

Pro ruský jazyk se aktuálně používají následující kódování:

  • CP866 (kódová stránka 866) nebo DOS, které se často nazývá alternativní kódování GOST. Aktivně byl využíván až do poloviny 90. let minulého století. V současné době se prakticky nepoužívá.
  • KOI-8. Kódování bylo vyvinuto v 70. a 80. letech 20. století a v současnosti je obecně přijímaným standardem pro e-mailové zprávy na RuNet. Je široce používán v operačních systémech Unix, včetně Linuxu. „Ruská“ verze KOI-8 se nazývá KOI-8R. Kromě toho existují verze pro další jazyky azbuky, jako je ukrajinština.
  • Kódová stránka 1251 (CP 1251, Windows - 1251). Vyvinutý společností Microsoft, aby poskytoval podporu pro ruský jazyk v prostředí Windows.

Hlavní výhodou prvního standardu CP866 bylo zachování pseudografických znaků na stejných pozicích jako v Extended ASCII. To umožnilo bez úprav spouštět textové programy zahraniční výroby, jako je například slavný Norton Commander. V současné době se CP866 používá pro programy vyvinuté pro Windows, které běží v textovém režimu celé obrazovky nebo v textových oknech, včetně FAR Manager.

Počítačové texty napsané v kódování CP866 jsou v dnešní době poměrně vzácné, ale je to ten, který se používá pro ruské názvy souborů ve Windows.

"Unicode"

V současnosti je toto kódování nejpoužívanější. Kódy Unicode jsou rozděleny do oblastí. První (U+0000 až U+007F) obsahuje znaky ASCII s kódy. Následují znakové oblasti různých národních písem a také interpunkční znaménka a technické symboly. Kromě toho jsou některé kódy Unicode vyhrazeny pro případ, že bude v budoucnu nutné zahrnout nové znaky.

Nyní víte, že v ASCII je každý znak reprezentován jako kombinace 8 nul a jedniček. Nespecialistům se tyto informace mohou zdát zbytečné a nezajímavé, ale nechcete vědět, co se děje „v mozku“ vašeho PC?!

Překryvný znak

Znak BS (backspace) umožňuje tiskárně tisknout jeden znak přes druhý. ASCII poskytuje pro přidávání diakritiky k písmenům tímto způsobem, například:

  • a BS "→ á
  • a BS ` → à
  • a BS ^ → â
  • o BS / → ø
  • c BS , → ç
  • n BS ~ → с

Poznámka: ve starých fontech byl apostrof " nakreslen šikmo doleva a vlnovka ~ byla posunuta nahoru, takže prostě pasovaly do role akutního a vlnovky nahoře.

Pokud je stejný znak překryt znakem, výsledkem je efekt tučného písma, a pokud je znak překryt podtržením, výsledkem je podtržený text.

  • a BS a → A
  • aBS_→ A

Poznámka: Používá se např. v systému man help.

Národní ASCII varianty

Norma ISO 646 (ECMA-6) poskytuje možnost umístění národních symbolů na místo @ [ \ ] ^ ` { | } ~ . Navíc na místě # lze zveřejnit £ a na místě $ - ¤ . Tento systém je vhodný pro evropské jazyky, kde je potřeba pouze několik znaků navíc. Verze ASCII bez národních znaků se nazývá US-ASCII nebo "International Reference Version".

Následně se ukázalo jako výhodnější používat 8bitové kódování (kódové stránky), kde spodní polovinu kódové tabulky (0-127) zabírají znaky US-ASCII a horní polovinu (128-255) pomocí dalších znaků, včetně sady národních znaků. Horní polovina ASCII tabulky se tedy před rozšířeným přijetím Unicode aktivně používala k reprezentaci lokalizovaných znaků, písmen místního jazyka. Absence jednotného standardu pro umístění znaků azbuky do ASCII tabulky způsobila mnoho problémů s kódováním (KOI-8, Windows-1251 a další). Jiné jazyky s jiným než latinským písmem také trpěly tím, že měly několik různých kódování.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
0. NUL SOM EOA EOM EQT W.R.U. RU ZVONEK BKSP HT LF VT FF ČR TAK S.I.
1. DC 0 DC 1 DC 2 DC 3 DC 4 CHYBOVAT SYNCHRONIZOVAT L.E.M. S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
2.
3.
4. PRÁZDNÝ ! " # $ % & " ( ) * + , - . /
5. 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
6.
7.
8.
9.
A. @ A B C D E F G H J K L M N Ó
B. P Q R S T U PROTI W X Y Z [ \ ]
C.
D.
E. A b C d E F G h i j k l m n Ó
F. p q r s t u proti w x y z ESC DEL

Na těch počítačích, kde bylo minimální adresovatelnou jednotkou paměti 36bitové slovo, se zpočátku používaly 6bitové znaky (1 slovo = 6 znaků). Po přechodu na ASCII začaly takové počítače obsahovat buď 5 sedmibitových znaků (1 bit zůstal navíc) nebo 4 devítibitové znaky v jednom slově.

ASCII kódy se také používají k určení, která klávesa je stisknuta během programování. Pro standardní QWERTY klávesnici vypadá tabulka kódů takto:

Dobrý den, milí čtenáři tohoto blogu. Dnes si s vámi povíme, odkud na webu a v programech krakozyabry pocházejí, jaká textová kódování existují a která by se měla používat. Podívejme se blíže na historii jejich vývoje, počínaje základním ASCII, i jeho rozšířenými verzemi CP866, KOI8-R, Windows 1251 a konče moderními kódováními konsorcia Unicode UTF 16 a 8.

Někomu se tato informace může zdát zbytečná, ale víte, kolik otázek dostávám konkrétně ohledně prolézajících se krakozyabrů (nečitelná sada znaků). Nyní budu mít možnost všechny odkázat na text tohoto článku a najít své vlastní chyby. No, připravte se na vstřebání informací a pokuste se sledovat tok příběhu.

ASCII - základní kódování textu pro latinku

Vývoj kódování textů probíhal souběžně s formováním IT průmyslu a za tuto dobu stihlo projít poměrně velkým množstvím změn. Historicky vše začalo EBCDIC, který byl v ruské výslovnosti spíše disonantní, což umožnilo kódovat písmena latinské abecedy, arabské číslice a interpunkční znaménka s řídicími znaky.

Ale přesto by měl být výchozí bod pro vývoj moderních textových kódování považován za slavný ASCII(Americký standardní kód pro výměnu informací, který se v ruštině obvykle vyslovuje jako „zeptat se“). Popisuje prvních 128 znaků nejčastěji používaných anglicky mluvícími uživateli – latinská písmena, arabské číslice a interpunkční znaménka.

Těchto 128 znaků popsaných v ASCII také zahrnovalo některé servisní znaky, jako jsou závorky, značky hash, hvězdičky atd. Ve skutečnosti je můžete vidět sami:

Právě těchto 128 znaků z původní verze ASCII se stalo standardem a v jakémkoli jiném kódování je určitě najdete a objeví se v tomto pořadí.

Faktem ale je, že jedním byte informací můžete zakódovat ne 128, ale až 256 různých hodnot (dvě mocniny osmi se rovná 256), takže po základní verzi Asuka celá řada rozšířené ASCII kódování, do kterého bylo možné kromě 128 základních znaků kódovat i symboly národního kódování (například ruské).

Zde pravděpodobně stojí za to říci trochu více o číselných systémech, které jsou použity v popisu. Za prvé, jak všichni víte, počítač pracuje pouze s čísly ve dvojkové soustavě, konkrétně s nulami a jedničkami (“Booleovská algebra”, pokud to někdo na ústavu nebo škole bral). , z nichž každá je dvojka na mocninu, počínaje nulou a od dvou do sedmé:

Není těžké pochopit, že všechny možné kombinace nul a jedniček v takové konstrukci mohou být pouze 256. Převod čísla z dvojkové do desítkové soustavy je vcelku jednoduchý. Stačí sečíst všechny mocniny dvojky s jedničkami nad nimi.

V našem příkladu je to 1 (2 na nulu) plus 8 (dvě na 3), plus 32 (dvě na pátou mocninu), plus 64 (na šestou mocninu) plus 128 (do sedmé mocniny). Celkem je 233 v desítkovém zápisu. Jak vidíte, vše je velmi jednoduché.

Když se ale pozorně podíváte na tabulku se znaky ASCII, uvidíte, že jsou zastoupeny v hexadecimálním kódování. Například "hvězdička" odpovídá hexadecimálnímu číslu 2A v Aski. Asi víte, že v hexadecimální číselné soustavě se kromě arabských číslic používají i latinská písmena od A (znamená deset) do F (znamená patnáct).

Tak tedy pro převod binárního čísla na hexadecimální uchýlit se k následující jednoduché a zřejmé metodě. Každý bajt informace je rozdělen do dvou částí po čtyřech bitech, jak je znázorněno na výše uvedeném snímku obrazovky. Že. V každém půlbajtu lze binárně zakódovat pouze šestnáct hodnot (dvě až čtvrtá mocnina), které lze snadno reprezentovat jako hexadecimální číslo.

Navíc v levé polovině bajtu bude nutné znovu počítat stupně počínaje nulou, a ne jak je znázorněno na snímku obrazovky. Ve výsledku jednoduchými výpočty dojdeme k tomu, že na snímku obrazovky je zakódováno číslo E9. Doufám, že průběh mého uvažování a řešení této hádanky vám bylo jasné. Nyní pokračujme ve skutečnosti v mluvení o kódování textu.

Rozšířené verze Asuka - kódování CP866 a KOI8-R s pseudografikou

Začali jsme tedy mluvit o ASCII, které bylo jakoby výchozím bodem pro vývoj všech moderních kódování (Windows 1251, Unicode, UTF 8).

Zpočátku obsahoval pouze 128 znaků latinské abecedy, arabské číslice a něco jiného, ​​ale v rozšířené verzi bylo možné použít všech 256 hodnot, které lze zakódovat do jednoho bajtu informací. Tito. Bylo možné přidat do Aski symboly písmen vašeho jazyka.

Zde budeme muset znovu odbočit, abychom vysvětlili - proč vůbec potřebujeme kódování? texty a proč je to tak důležité. Znaky na obrazovce vašeho počítače jsou tvořeny na základě dvou věcí – sady vektorových forem (reprezentací) různých znaků (jsou umístěny v souborech s ) a kódu, který vám umožňuje vytáhnout z této sady vektorových forem (soubor fontů ) přesně ten znak, který bude potřeba vložit na správné místo.

Je jasné, že za vektorové tvary jsou zodpovědné samotné fonty, ale za kódování je zodpovědný operační systém a programy v něm použité. Tito. jakýkoli text ve vašem počítači bude sadou bajtů, z nichž každý zakóduje jeden jediný znak právě tohoto textu.

Program, který zobrazuje tento text na obrazovce (textový editor, prohlížeč atd.), při parsování kódu načte kódování dalšího znaku a hledá odpovídající vektorovou formu v požadovaném souboru fontu, který je připojen k zobrazení tohoto textový dokument. Všechno je jednoduché a banální.

To znamená, že pro zakódování jakéhokoli znaku, který potřebujeme (například z národní abecedy), musí být splněny dvě podmínky - vektorová podoba tohoto znaku musí být v použitém fontu a tento znak by mohl být zakódován v rozšířených ASCII kódováních v jeden bajt. Proto je takových možností celá řada. Jen pro kódování znaků ruského jazyka existuje několik druhů rozšířené Aska.

Například se původně objevil CP866, který měl možnost používat znaky z ruské abecedy a byl rozšířenou verzí ASCII.

Tito. její horní část se zcela shodovala se základní verzí Aska (128 latinských znaků, čísel a dalších kravin), která je uvedena na snímku nahoře, ale spodní část tabulky s kódováním CP866 měla vzhled naznačený na snímku těsně pod a umožnilo vám zakódovat dalších 128 znaků (ruská písmena a nejrůznější pseudografiky):

Vidíte, v pravém sloupci čísla začínají 8, protože... čísla od 0 do 7 odkazují na základní část ASCII (viz první snímek obrazovky). Že. ruské písmeno „M“ v CP866 bude mít kód 9C (nachází se na průsečíku odpovídajícího řádku s 9 a sloupce s číslem C v hexadecimálním číselném systému), který lze zapsat do jednoho bajtu informace a pokud je k dispozici vhodné písmo s ruskými znaky, toto písmeno se bez problémů v textu objeví.

Kde se tato částka vzala? pseudografika v CP866? Celá podstata spočívá v tom, že toto kódování pro ruský text bylo vyvinuto v těch chundelatých letech, kdy grafické operační systémy nebyly tak rozšířené jako nyní. A v Dose a podobných textových operačních systémech pseudografika umožňovala alespoň nějak zpestřit design textů, a proto se jí CP866 a všichni jeho další vrstevníci z kategorie rozšířených verzí Asuka jen tak hemží.

CP866 byl distribuován společností IBM, ale kromě toho byla vyvinuta řada kódování pro znaky ruského jazyka, například stejný typ (rozšířené ASCII) lze přiřadit KOI8-R:

Princip jeho fungování zůstává stejný jako u o něco dříve popsaného CP866 – každý znak textu je zakódován jedním jediným byte. Snímek obrazovky ukazuje druhou polovinu tabulky KOI8-R, protože první polovina je zcela v souladu se základní Asukou, která je zobrazena na prvním snímku obrazovky v tomto článku.

Mezi rysy kódování KOI8-R lze poznamenat, že ruská písmena v jeho tabulce nejsou v abecedním pořadí, jako to udělali například v CP866.

Pokud se podíváte na úplně první snímek obrazovky (základní části, která je součástí všech rozšířených kódování), všimnete si, že v KOI8-R jsou ruská písmena umístěna ve stejných buňkách tabulky jako odpovídající písmena latinské abecedy. z první části tabulky. To bylo provedeno pro pohodlí přechodu z ruštiny na latinku vyřazením pouze jednoho bitu (od dvou do sedmé mocniny neboli 128).

Windows 1251 - moderní verze ASCII a proč se objevují praskliny

Další vývoj kódování textů byl dán tím, že grafické operační systémy získávaly na oblibě a potřeba v nich pseudografiku časem vymizela. V důsledku toho vznikla celá skupina, která byla v podstatě stále rozšířenými verzemi Asuka (jeden znak textu je zakódován pouze jedním bajtem informace), ale bez použití pseudografických symbolů.

Patřily mezi tzv. kódování ANSI, které vyvinul American Standards Institute. V běžné řeči se název azbuka vžil i pro verzi s podporou ruského jazyka. Příkladem může být.

Od dříve používaných CP866 a KOI8-R se příznivě lišil tím, že místo pseudografických symbolů v něm zaujaly chybějící symboly ruské typografie (kromě přízvuku), jakož i symboly používané ve slovanských jazycích blízkých ruština (ukrajinská, běloruská atd.):

Kvůli takovému množství kódování ruského jazyka měli výrobci písem a výrobci softwaru neustále bolesti hlavy a vy a já, milí čtenáři, jsme často dostávali stejné notoricky známé krakozyabry když došlo k záměně s verzí použitou v textu.

Velmi často vycházely při odesílání a přijímání zpráv e-mailem, což znamenalo vytvoření velmi složitých převodních tabulek, které ve skutečnosti nemohly tento problém zásadně vyřešit a uživatelé často používali pro korespondenci, aby se vyhnuli notoricky známým trikům při používání Ruská kódování jako CP866, KOI8-R nebo Windows 1251.

Praskliny objevující se místo ruského textu byly ve skutečnosti důsledkem nesprávného použití kódování tohoto jazyka, které neodpovídalo tomu, ve kterém byla textová zpráva původně zakódována.

Řekněme, že pokud se pokusíte zobrazit znaky zakódované pomocí CP866 pomocí tabulky kódů Windows 1251, objeví se stejné nesmysly (nesmyslná sada znaků), které zcela nahradí text zprávy.

Podobná situace velmi často nastává na fórech nebo blozích, kdy je text s ruskými znaky omylem uložen ve špatném kódování, které je na webu standardně použito, nebo ve špatném textovém editoru, který do kódu přidává gagy, které nejsou pro uživatele viditelné. pouhým okem.

Tato situace se spoustou kódování a neustále plíživými kravinami nakonec mnohé omrzela a objevily se předpoklady pro vytvoření nové univerzální variace, která by nahradila všechny stávající a konečně vyřešila problém se vzhledem. nečitelných textů. Kromě toho se objevil problém jazyků, jako je čínština, kde bylo mnohem více jazykových znaků než 256.

Unicode - univerzální kódování UTF 8, 16 a 32

Tyto tisíce znaků jazykové skupiny jihovýchodní Asie nebylo možné popsat v jednom bajtu informací, které byly přiděleny pro kódování znaků v rozšířených verzích ASCII. V důsledku toho bylo vytvořeno konsorcium tzv Unicode(Unicode - Unicode Consortium) ve spolupráci mnoha lídrů IT průmyslu (těch, kteří vyrábějí software, kteří kódují hardware, kteří vytvářejí fonty), kteří měli zájem na vzniku univerzálního kódování textu.

První variace vydaná pod záštitou Unicode Consortium byla UTF 32. Číslo v názvu kódování znamená počet bitů, které jsou použity ke kódování jednoho znaku. 32 bitů se rovná 4 bajtům informací, které budou potřeba k zakódování jednoho jediného znaku v novém univerzálním kódování UTF.

Výsledkem je, že stejný soubor s textem zakódovaným v rozšířené verzi ASCII a v UTF-32 v druhém případě bude mít velikost (váhu) čtyřikrát větší. To je špatné, ale nyní máme možnost zakódovat pomocí YTF počet znaků rovný dvěma až třicetisekundové mocnině ( miliardy postav, která pokryje jakoukoli skutečně potřebnou hodnotu s kolosální marží).

Ale mnoho zemí s jazyky evropské skupiny vůbec nepotřebovalo používat tak velké množství znaků v kódování, nicméně při použití UTF-32 bezdůvodně získaly čtyřnásobné zvýšení hmotnosti textových dokumentů, a v důsledku toho zvýšení objemu internetového provozu a objemu uložených dat. To je hodně a nikdo by si nemohl dovolit takové plýtvání.

V důsledku vývoje Unicode, UTF-16, který se ukázal být natolik úspěšný, že byl standardně přijat jako základní prostor pro všechny znaky, které používáme. Ke kódování jednoho znaku používá dva bajty. Podívejme se, jak tato věc vypadá.

V operačním systému Windows můžete postupovat podle cesty „Start“ - „Programy“ - „Příslušenství“ - „Systémové nástroje“ - „Tabulka znaků“. V důsledku toho se otevře tabulka s vektorovými tvary všech písem nainstalovaných ve vašem systému. Pokud v části „Pokročilé možnosti“ vyberete znakovou sadu Unicode, budete moci pro každé písmo samostatně zobrazit celý rozsah znaků, které jsou v něm obsaženy.

Mimochodem, kliknutím na kterýkoli z nich se zobrazí jeho dvoubajt kód ve formátu UTF-16, skládající se ze čtyř hexadecimálních číslic:

Kolik znaků lze zakódovat v UTF-16 pomocí 16 bitů? 65 536 (dvě mocniny šestnácti) a toto je číslo, které bylo v Unicode přijato jako základní prostor. Kromě toho existují způsoby, jak pomocí něj zakódovat asi dva miliony znaků, ale ty byly omezeny na rozšířený prostor na milion znaků textu.

Ale ani tato úspěšná verze kódování Unicode nepřinesla velké uspokojení těm, kteří psali programy řekněme pouze v angličtině, protože pro ně se po přechodu z rozšířené verze ASCII na UTF-16 váha dokumentů zdvojnásobila ( jeden bajt na znak v Aski a dva bajty na stejný znak v YUTF-16).

Bylo rozhodnuto přijít právě proto, abychom uspokojili všechny a všechno v konsorciu Unicode kódování s proměnnou délkou. Jmenovalo se to UTF-8. Přes tu osmičku v názvu má vlastně proměnnou délku, tzn. Každý znak textu lze zakódovat do sekvence o délce jednoho až šesti bajtů.

V praxi UTF-8 používá pouze rozsah od jednoho do čtyř bajtů, protože nad čtyřmi bajty kódu si už není ani teoreticky možné nic představit. Všechny latinské znaky v něm jsou zakódovány do jednoho bajtu, stejně jako ve starém dobrém ASCII.

Pozoruhodné je, že v případě kódování pouze latinské abecedy budou i ty programy, které nerozumí Unicode, stále číst to, co je zakódováno v YTF-8. Tito. základní část Asuka byla jednoduše přenesena do tohoto vytvoření konsorcia Unicode.

Znaky azbuky v UTF-8 jsou kódovány ve dvou bytech a například gruzínské znaky jsou kódovány ve třech bytech. Unicode Consortium po vytvoření UTF 16 a 8 vyřešilo hlavní problém - nyní máme fonty mají jeden kódový prostor. A nyní ji jejich výrobci mohou naplnit pouze vektorovými formami textových znaků na základě svých silných stránek a schopností. Nyní přicházejí dokonce v sadách.

V „Tabulce znaků“ výše můžete vidět, že různá písma podporují různé počty znaků. Některá písma bohatá na Unicode mohou být poměrně těžká. Nyní se však neliší v tom, že byly vytvořeny pro různá kódování, ale v tom, že výrobce písem vyplnil nebo zcela nevyplnil prostor jediného kódu určitými vektorovými tvary.

Bláznivá slova místo ruských písmen - jak to opravit

Podívejme se nyní, jak se místo textu objevují krakozyabry nebo jinými slovy, jak se vybírá správné kódování pro ruský text. Ve skutečnosti se nastavuje v programu, ve kterém vytváříte nebo upravujete právě tento text nebo kód pomocí textových fragmentů.

K úpravám a vytváření textových souborů osobně používám velmi dobrý, dle mého názoru, . Dokáže však zvýraznit syntaxi stovek dalších programovacích a značkovacích jazyků a má také možnost rozšíření pomocí pluginů. Přečtěte si podrobnou recenzi tohoto skvělého programu na uvedeném odkazu.

V horní nabídce programu Poznámkový blok ++ je položka „Kódování“, kde budete mít možnost převést existující možnost na možnost, která se standardně používá na vašem webu:

V případě webu na Joomla 1.5 a vyšším, stejně jako v případě blogu na WordPress, byste měli zvolit možnost, aby se zabránilo výskytu prasklin UTF 8 bez kusovníku. Co je předpona kusovníku?

Faktem je, že když vyvíjeli kódování YUTF-16, z nějakého důvodu se rozhodli připojit k němu něco jako schopnost psát kód znaku jak v přímé sekvenci (například 0A15), tak i obráceně (150A) . A aby programy přesně pochopily, v jakém pořadí číst kódy, bylo vynalezeno kusovník(Byte Order Mark nebo jinými slovy podpis), což bylo vyjádřeno přidáním tří dalších bajtů na samotný začátek dokumentů.

V kódování UTF-8 nebyly v konsorciu Unicode poskytovány žádné kusovníky, a proto přidání podpisu (ty notoricky známé tři bajty navíc na začátku dokumentu) prostě brání některým programům ve čtení kódu. Proto při ukládání souborů v UTF musíme vždy vybrat možnost bez kusovníku (bez podpisu). Takže jste v předstihu chránit se před plazícími se krakozyabry.

Pozoruhodné je, že některé programy ve Windows to neumí (neumí uložit text v UTF-8 bez kusovníku), například stejný notoricky známý Windows Notepad. Uloží dokument v UTF-8, ale přesto přidá podpis (tři bajty navíc) na jeho začátek. Navíc tyto bajty budou vždy stejné - čtěte kód v přímém pořadí. Ale na serverech může kvůli této maličkosti nastat problém - vyjdou podvodníci.

Proto za žádných okolností Nepoužívejte běžný poznámkový blok Windows upravovat dokumenty na svém webu, pokud nechcete, aby se objevily praskliny. Za nejlepší a nejjednodušší možnost považuji již zmíněný editor Notepad++, který nemá prakticky žádné nevýhody a skládá se pouze z výhod.

Když v programu Notepad++ vyberete kódování, budete mít možnost převést text do kódování UCS-2, které je svou povahou velmi blízké standardu Unicode. Také v poznámkovém bloku bude možné kódovat text v ANSI, tzn. ve vztahu k ruštině to bude Windows 1251, který jsme již popsali výše, odkud tato informace pochází?

Registruje se v registru vašeho operačního systému Windows - jaké kódování zvolit v případě ANSI, které zvolit v případě OEM (pro ruský jazyk to bude CP866). Pokud do počítače nainstalujete jiný výchozí jazyk, budou tato kódování nahrazena podobnými z kategorie ANSI nebo OEM pro stejný jazyk.

Poté, co uložíte dokument do programu Notepad++ v kódování, které potřebujete, nebo otevřete dokument z webu pro úpravy, uvidíte jeho název v pravém dolním rohu editoru:

Abychom se vyhnuli redneckům Kromě výše popsaných akcí bude užitečné zahrnout informace o tomto kódování do hlavičky zdrojového kódu všech stránek webu, aby nedošlo k záměně na serveru nebo místním hostiteli.

Obecně platí, že všechny hypertextové značkovací jazyky kromě Html používají speciální xml deklaraci, která specifikuje kódování textu.

Před analýzou kódu prohlížeč ví, která verze se používá a jak přesně potřebuje interpretovat kódy znaků daného jazyka. Ale co je pozoruhodné, je to, že pokud dokument uložíte ve výchozím Unicode, pak lze tuto xml deklaraci vynechat (kódování bude považováno za UTF-8, pokud neexistuje žádný kusovník, nebo UTF-16, pokud existuje kusovník).

V případě dokumentu v jazyce Html se k označení používá kódování Meta prvek, který se zapisuje mezi úvodní a závěrečnou značku Head:

... ...

Tento záznam je zcela odlišný od toho, který byl přijat v roce, ale je plně v souladu s novým standardem Html 5, který je postupně zaváděn, a bude zcela správně chápán všemi aktuálně používanými prohlížeči.

Teoreticky by bylo lepší umístit prvek Meta označující kódování dokumentu Html co nejvýše v záhlaví dokumentu aby v době, kdy narazíte na první znak v textu nepocházející ze základních ANSI (které se čtou vždy správně a v jakékoli obměně), měl prohlížeč již informaci o tom, jak kódy těchto znaků interpretovat.

Ať se vám daří! Brzy se uvidíme na stránkách blogu

Na další videa se můžete podívat na
");">

Mohlo by vás to zajímat

Co jsou adresy URL, jak se liší absolutní a relativní odkazy na stránky?
OpenServer - moderní lokální server a ukázka jeho použití pro instalaci WordPressu na počítač
Co je to Chmod, jaká oprávnění přidělovat souborům a složkám (777, 755, 666) a jak to udělat přes PHP
Yandex vyhledávání podle webu a internetového obchodu

prosinec Hex Symbol prosinec Hex Symbol
000 00 specialista. NOP 128 80 Ђ
001 01 specialista. SOH 129 81 Ѓ
002 02 specialista. STX 130 82
003 03 specialista. ETX 131 83 ѓ
004 04 specialista. EOT 132 84
005 05 specialista. ENQ 133 85
006 06 specialista. ACK 134 86
007 07 specialista. BEL 135 87
008 08 specialista. B.S. 136 88
009 09 specialista. TAB 137 89
010 0Aspecialista. LF 138 8AЉ
011 0Bspecialista. VT 139 8B‹ ‹
012 0Cspecialista. FF 140 8CЊ
013 0Dspecialista. ČR 141 8DЌ
014 0Especialista. TAK 142 8EЋ
015 0Fspecialista. S.I. 143 8FЏ
016 10 specialista. DLE 144 90 ђ
017 11 specialista. DC1 145 91
018 12 specialista. DC2 146 92
019 13 specialista. DC3 147 93
020 14 specialista. DC4 148 94
021 15 specialista. N.A.K. 149 95
022 16 specialista. SYN 150 96
023 17 specialista. ETB 151 97
024 18 specialista. CAN 152 98
025 19 specialista. E.M. 153 99
026 1Aspecialista. SUB 154 9Aљ
027 1Bspecialista. ESC 155 9B
028 1Cspecialista. FS 156 9Cњ
029 1Dspecialista. G.S. 157 9Dќ
030 1Especialista. R.S. 158 9Eћ
031 1Fspecialista. NÁS 159 9Fџ
032 20 spojka SP (vesmír) 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8Jo
041 29 ) 169 A9©
042 2A* 170 A.A.Є
043 2B+ 171 AB«
044 2C, 172 A.C.¬
045 2D- 173 INZERÁT­
046 2E. 174 A.E.®
047 2F/ 175 A.F.Ї
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8E
057 39 9 185 B9
058 3A: 186 B.A.є
059 3B; 187 BB»
060 3C< 188 B.C.ј
061 3D= 189 BDЅ
062 3E> 190 BÝTѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 V
067 43 C 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 A
071 47 G 199 C7 Z
072 48 H 200 C8 A
073 49 201 C9 Y
074 4AJ 202 C.A. NA
075 4BK 203 C.B. L
076 4CL 204 CC M
077 4DM 205 CD N
078 4EN 206 C.E. O
079 4FÓ 207 CF P
080 50 P 208 D0 R
081 51 Q 209 D1 S
082 52 R 210 D2 T
083 53 S 211 D3 U
084 54 T 212 D4 F
085 55 U 213 D5 X
086 56 PROTI 214 D6 C
087 57 W 215 D7 H
088 58 X 216 D8 Sh
089 59 Y 217 D9 SCH
090 5AZ 218 D.A. Kommersant
091 5B[ 219 D.B. Y
092 5C\ 220 DC b
093 5D] 221 DD E
094 5E^ 222 DE Yu
095 5F_ 223 DF
096 60 ` 224 E0 A
097 61 A 225 E1 b
098 62 b 226 E2 PROTI
099 63 C 227 E3 G
100 64 d 228 E4 d
101 65 E 229 E5 E
102 66 F 230 E6 a
103 67 G 231 E7 h
104 68 h 232 E8 A
105 69 i 233 E9 čt
106 6Aj 234 E.A. Na
107 6Bk 235 E.B. l
108 6Cl 236 E.C. m
109 6Dm 237 ED n
110 6En 238 E.E. Ó
111 6FÓ 239 E.F. n
112 70 p 240 F0 r
113 71 q 241 F1 S
114 72 r 242 F2 T
115 73 s 243 F3 na
116 74 t 244 F4 F
117 75 u 245 F5 X
118 76 proti 246 F6 ts
119 77 w 247 F7 h
120 78 x 248 F8 w
121 79 y 249 F9 sch
122 7Az 250 F.A. ъ
123 7B{ 251 FB s
124 7C| 252 F.C. b
125 7D} 253 FD uh
126 7E~ 254 F.E. jo
127 7FSpecialista. DEL 255 FF

Tabulka kódů znaků ASCII Windows.
Popis speciálních (řídících) znaků

Je třeba poznamenat, že řídicí znaky ASCII tabulky byly původně používány pro zajištění výměny dat pomocí dálnopisu, zadávání dat z děrné pásky a pro jednoduché ovládání externích zařízení.
V současné době většina řídicích znaků tabulky ASCII již tuto zátěž nenese a lze je použít pro jiné účely.
Kód Popis
NUL, 00Nulové, prázdné
SOH, 01Začátek Okruhu
STX, 02Začátek TeXtu, začátek textu.
ETX, 03Konec TeXtu, konec textu
EOT, 04Konec přenosu, konec přenosu
ENQ, 05Zeptejte se. Prosím potvrďte
ACK, 06Potvrzení. potvrzuji
BEL, 07Bell, zavolej
BS, 08Backspace, návrat o jeden znak zpět
TAB, 09Karta, vodorovná karta
LF, 0ALine Feed, line feed.
V dnešní době se ve většině programovacích jazyků označuje jako \n
VT, 0BVertikální tabelátor, vertikální tabulka.
FF, 0CZdroj formuláře, zdroj stránky, nová stránka
ČR, 0DCarriage Return, carriage return.
V dnešní době se ve většině programovacích jazyků označuje jako \r
SO,0EShift Out, změňte barvu barvicí pásky v tiskovém zařízení
SI,0FShift In, vrátí barvu barvicí pásky v tiskovém zařízení zpět
DLE, 10Data Link Escape, přepnutí kanálu na přenos dat
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Ovládání zařízení, symboly ovládání zařízení
NAK, 15Negativní potvrzení, nepotvrzuji.
SYN, 16Synchronizace. Symbol synchronizace
ETB, 17Konec textového bloku, konec textového bloku
CAN, 18Storno, zrušení dříve přeneseného
EM, 19Konec média
SUB, 1ANáhradník, náhradník.
Umístěno na místo symbolu, jehož význam byl ztracen nebo poškozen během přenosuESC, 1B
Sekvence ovládání útěkuFS, 1C
Oddělovač souborů, oddělovač souborůGS, 1D
Oddělovač skupinRS, 1E
Oddělovač záznamů, oddělovač záznamůUSA, 1F
Oddělovač jednotekDEL, 7F

Smazat, vymazat poslední znak.

Jak víte, počítač ukládá informace v binární formě a představuje je jako posloupnost jedniček a nul. Pro převedení informací do formy vhodné pro lidské vnímání je každá jedinečná sekvence čísel při zobrazení nahrazena odpovídajícím symbolem.

Jedním ze systémů pro korelaci binárních kódů s tištěnými a řídicími znaky je

Při současném stupni rozvoje výpočetní techniky se od uživatele nevyžaduje znalost kódu každého konkrétního znaku. Obecná znalost toho, jak se kódování provádí, je však nesmírně užitečné a pro některé kategorie specialistů dokonce nezbytné.

Vytváření ASCII

Kódování bylo původně vyvinuto v roce 1963 a poté dvakrát aktualizováno v průběhu 25 let.

Po mnoho let bylo toto kódování nejoblíbenější na světě. V roce 2006 zaujal vedoucí pozici Latin 1252 a od konce roku 2007 až do současnosti si vedoucí pozici pevně drží Unicode.

Počítačová reprezentace ASCII

Každý znak ASCII má svůj vlastní kód, který se skládá z 8 znaků představujících nulu nebo jedničku. Minimální číslo v této reprezentaci je nula (osm nul ve dvojkové soustavě), což je kód prvního prvku v tabulce.

Dva kódy v tabulce byly vyhrazeny pro přepínání mezi standardním US-ASCII a jeho národní variantou.

Poté, co ASCII začalo zahrnovat ne 128, ale 256 znaků, se rozšířila varianta kódování, ve které byla původní verze tabulky uložena v prvních 128 kódech s 8. bitem nula. Národní psané znaky byly uloženy v horní polovině tabulky (pozice 128-255).

Uživatel nemusí znát kódy znaků ASCII přímo. Vývojář softwaru obvykle potřebuje znát pouze číslo prvku v tabulce, aby v případě potřeby vypočítal jeho kód pomocí binárního systému.

ruský jazyk

Po vývoji kódování pro skandinávské jazyky, čínštinu, korejštinu, řečtinu atd. na počátku 70. let začal Sovětský svaz vytvářet vlastní verzi. Brzy byla vyvinuta verze 8bitového kódování nazvaná KOI8, která zachovává prvních 128 kódů znaků ASCII a přiděluje stejný počet pozic pro písmena národní abecedy a další znaky.

Před zavedením Unicode dominovala KOI8 ruskému segmentu internetu. Existovaly možnosti kódování pro ruskou i ukrajinskou abecedu.

Problémy ASCII

Protože počet prvků ani v rozšířené tabulce nepřesáhl 256, nebylo možné pojmout několik různých skriptů v jednom kódování. V 90. letech se na Runetu objevil problém „crocozyabr“, kdy se texty napsané v ruských znacích ASCII zobrazovaly nesprávně.

Problém byl v tom, že různé ASCII kódy se navzájem neshodovaly. Připomeňme si, že na pozicích 128-255 se mohly nacházet různé znaky a při změně jednoho kódování azbuky na jiné byla všechna písmena textu nahrazena jinými se shodným číslem v jiné verzi kódování.

Aktuální stav

S příchodem Unicode začala popularita ASCII prudce klesat.

Důvodem je skutečnost, že nové kódování umožnilo pojmout znaky z téměř všech psaných jazyků. V tomto případě prvních 128 znaků ASCII odpovídá stejným znakům v Unicode.

V roce 2000 bylo ASCII nejoblíbenějším kódováním na internetu a bylo použito na 60 % webových stránek indexovaných Googlem. Do roku 2012 klesl podíl takových stránek na 17 % a místo nejoblíbenějšího kódování zaujalo Unicode (UTF-8).

ASCII je tedy důležitou součástí historie informačních technologií, ale jeho využití v budoucnu se zdá být neperspektivní.



 Nahoru