Kódování ruského jazyka ve Windows. Pomocí nástroje konzoly DISM

Krakozyabry- Co je to za slovo zajímavé? Toto slovo obvykle používají ruští uživatelé k popisu nesprávného/nesprávného zobrazení (kódování) znaků v programech nebo samotném operačním systému.
Proč se to děje? Jednoznačnou odpověď nenajdete. Může to být způsobeno triky našich „oblíbených“ virů, možná nefunkčností operačního systému Windows (například vypadla elektřina a počítač se vypnul), možná program vytvořil konflikt s jiným OS a vše šlo rozbitý. V obecné důvody může jich být mnoho, ale nejzajímavější je „Právě to vstalo a rozbilo se“.
Přečtěte si článek a zjistěte, jak vyřešit problém s kódováním v programech a OS Windows, jakmile k němu dojde.

Pro ty, kteří stále nechápou, co tím myslím, zde je několik:


Mimochodem, také jsem se jednou ocitl v této situaci a dodnes mám na ploše soubor, který mi pomohl se s tím vyrovnat. Proto jsem se rozhodl napsat tento článek.

Za zobrazení kódování (fontu) ve Windows je odpovědných několik „věcí“ - jazyk, registr a soubory samotného OS. Nyní je zkontrolujeme samostatně a bod po bodu.

Jak odstranit a opravit krakozyabry místo ruštiny (ruská písmena) v programu nebo Windows.

1. Kontrola nainstalovaný jazyk pro programy, které nepodporují Unicode. Možná se to ve vás ztratilo.

Pojďme tedy po cestě: Ovládací panely – Místní a jazykové nastavení – karta Upřesnit
Tam se ujistíme, že jazykem je ruština.


Ve Windows XP je navíc k tomu níže uvedený seznam " Kódové stránky převodní tabulky“ a je v ní řádek s číslem 20880. Je nutné, aby tam byla i ruština

6. Poslední bod, ve kterém vám dávám soubor, který mi jednou pomohl vše opravit, a proto jsem ho nechal na památku. Zde je archiv:

Uvnitř jsou dva soubory: krakozbroff.cmd a krakozbroff.reg

Mají stejný princip – správné hieroglyfy, čtverce, otázky popř vykřičníky v programech a OS Windows (v běžné mluvě krakozyabry). Použil jsem první a pomohlo mi to.

A na závěr pár tipů:
1) Pokud pracujete s registrem, nezapomeňte si udělat zálohu ( záložní kopie) pro případ, že by se něco pokazilo.
2) Po každém bodu je vhodné zkontrolovat 1. bod.

To je vše. Nyní víte, jak opravit/odstranit crackery (čtverečky, hieroglyfy, vykřičníky a otazníky) v programu nebo ve Windows.

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 Unicode Consortium 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 „aski“). Popisuje prvních 128 znaků nejčastěji používaných anglicky mluvícími uživateli - , 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ém provedení 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 dostane 233 palců desítková soustava Zúčtování. 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řeklad binární číslo do šestnáctkové soustavy uchýlit se k následující jednoduché a zřejmé metodě. Každý bajt informace je rozdělen na dvě části 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 dostaneme, ž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 analýze kódu načte kódování dalšího znaku a hledá odpovídající vektorovou formu v požadovaný soubor font, který je připojen k zobrazení tohoto textového dokumentu. 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í nejlepší část zcela se shodovala se základní verzí Aska (128 latinských znaků, čísel a dalších svinstev), která je uvedena na snímku obrazovky těsně nad, ale spodní část tabulky s kódováním CP866 měla podobu naznačenou na snímku hned níže a umožňovala vám pro zakódování dalších 128 znaků (ruských písmen a nejrůznějších pseudografik):

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í číselné soustavě), 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 (ukrajinština, běloruština atd.):

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

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

Krakozyabry objevující se místo ruského textu byly ve skutečnosti výsledkem nesprávného použití kódování tohoto jazyka, který se neshodoval s tím, ve kterém byl zakódován textová zpráva zpočátku.

Pokud se například pokusíte zobrazit znaky zakódované pomocí CP866 pomocí tabulka kódů Windows 1251, pak vyjdou stejné bláboly (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 kódování textový editor, který do kódu přidává roubíky, které nejsou 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é dokumenty a v důsledku toho nárůst objemu internetového provozu a množství 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 vyberete v " Další možnosti» sada znaků Unicode, pro každé písmo zvlášť vidíte celý rozsah znaků v něm obsažených.

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 příliš uspokojení těm, kteří psali např. programy pouze v anglický jazyk, protože po přechodu z rozšířené verze ASCII na UTF-16 se váha dokumentů zdvojnásobila (jeden bajt na znak v Aski a dva bajty na stejný znak v UTF-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ů.

Pro úpravy a vytváření textové soubory Osobně používám podle mě velmi dobrý . 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ů. Číst podrobná recenze tento skvělý program na uvedeném odkazu.

V horní menu Notepad++ má položku „Kódování“, kde budete mít možnost převést existující možnost na možnost, která se na vašem webu používá ve výchozím nastavení:

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. Nejlepší a nejvíce jednoduchá možnost Považuji za 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 tyto informace pocházejí?

Je registrován ve vašem registru operační systém Windows - jaké kódování zvolit v případě ANSI, které zvolit v případě OEM (pro ruský jazyk to bude CP866). Pokud v počítači nastavíte 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ě akcí popsaných výše se bude hodit zápis do jeho hlavičky zdrojový kód všechny stránky webu informace o tomto samotném kódování, 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, který je postupně zaváděn HTML standard 5 a bude 100% správně pochopena 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.

Hodně štěstí! Brzy se uvidíme na stránkách blogu

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 do počítače
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

Na počátku 90. let, kdy došlo k rozpadu SSSR a byly otevřeny hranice Ruska, jsme začali přijímat softwarových produktů Západní produkce. Samozřejmě, že všichni mluvili anglicky. Ve stejné době se začal rozvíjet internet. Problém rusifikace zdrojů a programů se stal akutním. Poté bylo vynalezeno ruské kódování Windows 1251. Umožňuje správně zobrazit písmena slovanských abeced:

  • Ruština;
  • Ukrajinština;
  • běloruský;
  • Srbština;
  • Bulharský;
  • makedonský

Vývoj provedlo ruské zastoupení Microsoftu společně se společnostmi Dialog a Odsek. Základ byl převzat z vlastnoručně napsaného vývoje, který byl v letech 1990-91 v oběhu mezi několika málo IT ideology v Rusku.

K dnešnímu dni více než univerzální metoda kódování znaků - UTF-8 (Unicode). Představuje téměř 90 % veškerého softwaru a webových zdrojů. Windows 1251 se používá v 1,6 % případů. (Informace z průzkumů webových technologií)

Kódování webu utf 8 nebo windows 1251?

Chcete-li odpovědět na tuto otázku, musíte trochu porozumět tomu, co je kódování a jak se liší. Textová informace, stejně jako jakákoli jiná informace, je uložena v počítači v zakódované podobě. Je pro nás snazší si to představit jako čísla. Každý znak může zabírat jeden nebo více bajtů. Windows 1251 je jednobajtové kódování, zatímco UTF-8 je osmibajtové kódování. To znamená, že ve Windows 1251 lze zakódovat pouze 256 znaků.
Protože vše závisí na binárním systému a bajt má 8 bitů (0 a 1), maximální počet kombinací je 28 = 256. Unicode umožňuje reprezentovat mnohem větší počet znaků a lze přidělit větší velikost pro každého.

Zde následují výhody Unicode:

  1. V záhlaví webu byste měli uvést kódování, které se používá. Jinak se místo symbolů zobrazí „bláznivé symboly“. A Unicode je standardem pro všechny prohlížeče – chytají jej „za běhu“, jak je standardně nainstalováno.
  2. Symboly stránek zůstanou stejné bez ohledu na to, ve které zemi je zdroj načten. To nezávisí na geografickém umístění serverů, ale na softwarovém jazyce klientských pracovních stanic. Obyvatel Portugalska evidentně používá klávesnici a veškerý software, včetně operačního systému, ve svém rodném jazyce. Jeho počítač s největší pravděpodobností vůbec nemá Windows 1251. A pokud tomu tak je, pak se stránky v ruštině neotevřou správně. Unicode je zase „pevně zapojen“ do jakéhokoli OS v jakémkoli jazyce.
  3. UTF-8 umožňuje kódování velké množství postavy. Na tento moment Používá se 6 bajtů z 8 a ruské znaky jsou zakódovány do dvou bajtů.
    Proto je vhodnější použít univerzální kódování než vysoce specializované kódování, které se používá pouze ve slovanských zemích.

Tabulka kódování Windows 1251

Pro programátory a vývojáře webových stránek je někdy nutné znát čísla znaků. K tomuto účelu se používají speciální kódovací tabulky. Níže je tabulka pro Windows 1251.

Co dělat, když se kódování příkazového řádku ztratí?

Někdy se můžete setkat se situací, kdy se na příkazovém řádku místo ruských zobrazí podivné znaky. To znamená, že došlo k problému s kódováním příkazů Řetězce Windows 7. Proč 7? Protože od verze 8 se používá UTF-8 a ve verzi 7 se používá i Windows 1251.
Problém může pomoci vyřešit najednou příkaz chcp 866. Aktuální relace bude fungovat správně. Chcete-li však chybu radikálně opravit, budete potřebovat registr.


Měj krásný zbytek dne!

Windows-1251 - znaková sada a kódování, což je standardní 8bitové kódování pro všechny ruské verze Microsoft Windows. Toto kódování je velmi populární v zemích východní Evropy. Windows-1251 se příznivě liší od jiných 8bitových kódování azbuky (jako jsou CP866, KOI8-R a ISO 8859-5) přítomností téměř všech znaků používaných v tradiční ruské typografii pro prostý text(chybí pouze znaménko s diakritikou). Znaky azbuky jsou v abecedním pořadí.
Windows-1251 také obsahuje všechny znaky pro jazyky blízké ruštině: běloruština, ukrajinština, srbština, makedonština a bulharština.
V praxi se to ukázalo jako dostačující k tomu, aby se kódování Windows-1251 prosadilo na internetu až do rozšíření UTF-8.

Tabulka znakových kódů Windows-1251

prosinecHexSymbol prosinecHexSymbol
000 00 NOP 128 80 Ђ
001 01 SOH 129 81 Ѓ
002 02 STX 130 82
003 03 ETX 131 83 ѓ
004 04 EOT 132 84
005 05 ENQ 133 85
006 06 ACK 134 86
007 07 BEL 135 87
008 08 B.S. 136 88
009 09 TAB 137 89
010 0ALF 138 8AЉ
011 0BVT 139 8B
012 0CFF 140 8CЊ
013 0DČR 141 8DЌ
014 0ETAK 142 8EЋ
015 0FS.I. 143 8FЏ
016 10 DLE 144 90 ђ
017 11 DC1 145 91
018 12 DC2 146 92
019 13 DC3 147 93
020 14 DC4 148 94
021 15 N.A.K. 149 95
022 16 SYN 150 96
023 17 ETB 151 97
024 18 UMĚT 152 98
025 19 E.M. 153 99
026 1ASUB 154 9Aљ
027 1BESC 155 9B
028 1CFS 156 9Cњ
029 1DG.S. 157 9Dќ
030 1ER.S. 158 9Eћ
031 1FNÁS 159 9Fџ
032 20 SP 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 PŘED NAŠÍM LETOPOČTEM.ј
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 5 D] 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. P
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. Yu
127 7FDEL 255 FF

Popis speciálních (řídících) znaků

Původně byly řídicí znaky tabulky ASCII (rozsah 00-31 plus 127) navrženy pro ovládání hardwarových zařízení, jako jsou dálnopisy, zadávání dat na děrné pásce atd.
Řídicí znaky (kromě vodorovného tabulátoru, posunu řádku a návratu vozíku) se v dokumentech HTML nepoužívají.

Speciální (řídicí) znaky

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, 0BVertical Tab, vertikální tabulka
FF, 0CZdroj formuláře, zdroj stránky, nová stránka
ČR, 0DNávrat vozíku
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řenosu
ESC, 1BSekvence ovládání útěku
FS, 1COddělovač souborů, oddělovač souborů
GS, 1DOddělovač skupin
RS, 1EOddělovač záznamů, oddělovač záznamů
USA, 1FOddělovač jednotek
DEL, 7FSmazat, vymazat poslední znak.

jak je známo, Windows 10 podporuje instalaci jazykových balíčků, pomocí kterých lze změnit lokalizaci rozhraní operačního systému. S tím velmi úzce souvisí pojem systémový jazyk. Systémový jazyk není ten, který byl přidán pomocí jazykového balíčku, ale ten, který byl vybrán při instalaci samotného systému. Pokud pracujete na podnikovém počítači, jehož jazyk byl změněn instalací MUI -packages, možná budete chtít vědět, jaký jazyk byl v systému původně použit.

Existuje několik způsobů, jak určit jazyk systému.

Pojďme se na ně podívat popořadě.

Pomocí nástroje konzoly DISM

Spustit jako administrátor příkazový řádek a provést v něm příkaz dism/online/get-intl. Za pár sekund se dočkáte výsledku.

Věnujte pozornost parametru "Výchozí jazyk uživatelského rozhraní" . Jeho význam bude jazyk systému.

Pomocí konzoly PowerShell

Spusťte konzolu jako správce a spusťte příkaz ::Instalovaná kultura .

Hodnota parametru DisplayName bude ukazovat na jazyk systému. Věnujte prosím také pozornost parametru LCID, obsahuje zapsaný jazykový kód registru Windows(viz. níže).

Použití Editoru registru a tabulky dekódování

tým regedit otevřete editor registru a rozbalte větev

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language

V pravém sloupci okna editoru najděte parametr řetězce (je úplně na dně) a vidět jeho význam.

Je reprezentován čtyřmístným kódem, k jehož dešifrování byste měli použít dekódovací tabulku na webu MSDN. V našem příkladu kód 0419 odpovídá ruskému jazyku.