nisfarm.ru

UTF-8 - kódování znaků

Unicode podporuje téměř všechny existující znakové sady. Nejlepším kódováním znakové sady Unicode je kódování UTF-8. Poskytuje kompatibilitu s ASCII, odolnost proti poškození dat, efektivnost a snadné zpracování. Ale o všechno v pořádku.

Formy kódování

Počítače pracují s čísly nejen jako abstraktní matematické objekty, ale jako kombinace jednotek ukládání a zpracování informativních bajtů pevného formátu a 32bitových slov. Norma kódování musí toto zohlednit při určování režimu reprezentace znaků podle čísel.

V počítačových systémech jsou celá čísla uložena v paměti 8 bitů (1 bajt), 16 nebo 32 bitů. Každá forma kódování Unicode určuje, která sekvence paměťových buněk představuje celé číslo odpovídající danému znaku. Standard nabízí tři různé formy kódování znaků Unicode: bloky 8, 16 a 32 bitů. Proto se nazývají UTF-8, UTF-16 a UTF-32. Název UTF znamená formát konverze Unicode. Každá ze tří forem kódování je rovnocenná reprezentace znaků Unicode, má výhody v různých aplikacích.

Tyto kódy lze použít k zobrazení všech znaků standardu Unicode. Proto jsou plně kompatibilní s řešeními z různých důvodů s použitím různých forem kódování. Každé kódování může být jednoznačně převedeno na libovolný z ostatních dvou bez ztráty dat.

utf 8 kódování

Zásada neuložení

Každá z formulářů kódování Unicode je navržena s ohledem na nepřípustnost částečného překrytí. Například systém Windows-932 generuje znaky z jednoho nebo dvou bajtů kódu. Délka sekvence závisí na prvním bajtu, takže přední hodnoty bajtů v posloupnosti dvou bajtů a jednoho bajtu se neprotínají. Hodnoty jednoho bajtu a konečného bajtu sekvence však mohou být stejné. To znamená například, že při hledání znaku D (kód 44) ​​můľete mylně zjistit, ľe vstupuje do druhé části posloupnosti dvou bajtů znaku "D" (kód 84 44). Chcete-li zjistit, která sekvence je správná, musí program brát v úvahu předchozí bajty.

Situace se stává komplikovanějším, pokud se master a závěrečný byte shodují. To znamená, že pro zrušení dvojznačnosti bude provedeno zpětné vyhledávání až do začátku textu nebo jednoznačného posloupnosti kódu. To je nejen neefektivní, ale není chráněno před možnými chybami, protože jeden špatný byte stačí k tomu, aby celý text nebyl čitelný.

Formát konverze Unicode tomuto problému zabraňuje, protože hodnoty předních, koncových a jednotkových jednotek ukládání informací neodpovídají. Kvůli tomu jsou všechna kódování Unicode vhodná pro vyhledávání a porovnávání, aniž by daly chybný výsledek kvůli shodě různých částí znakového kódu. Skutečnost, že tyto formy kódování dodržují zásadu nepřidělení, je odlišuje od ostatních kódování ve východní Asii.

Další aspekt neintersekce Sady znaků Unicode je, že každá postava má jasně definované hranice. To eliminuje potřebu skenování neurčeného počtu předchozích znaků. Tato vlastnost kódování se někdy nazývá samočinná synchronizace. Zkreslení jedné jednotky kódu povede k zkreslení pouze jednoho znaku a okolní znaky zůstanou neporušené. Ve formátu konverze na 8 bitů, pokud ukazatel odkazuje na bajt začínající na 10xxxxxx (v binárním kódování), je třeba vyhledat jeden až tři reverzní přechody, aby se zjistil začátek znaku.

kódování utf 8

Konzistence

Unicode Consortium plně podporuje všechny 3 formáty kódování. Je důležité neuplatňovat se proti UTF-8 a Unicode, protože všechny formáty konverzí jsou stejně legitimní implementace formulářů kódování znaků Unicode.

Bajtová orientace




Chcete-li reprezentovat symbol UTF-32, potřebujete jednu 32bitovou jednotku kódu, která odpovídá kódu Unicode. UTF-16 - z jedné až dvou 16bitových jednotek. A UTF-8 používá až 4 bajty.

Kódování UTF-8 je navrženo pro kompatibilitu s byte-orientovanými systémy založenými na ASCII. Většina stávajících postupů v oblasti softwaru a informačních technologií se po dlouhou dobu spoléhá na reprezentaci symbolů ve formě sekvence bajtů. Mnoho protokolů závisí na nezměněné podobě ASCII kódování a používá nebo vyhrazuje zvláštní kontrolní znaky. Jednoduchý způsob, jak přizpůsobit se situacím Unicode mohou pomocí 8-bitové kódování pro reprezentovat znaky Unicode, jakékoliv rovnocenné ASCII znak nebo řídicí znak. K tomu je určeno kódování UTF-8.

Proměnná délka

UTF-8 je kódování s proměnnou délkou sestávající z 8 bitových informačních paměťových jednotek, jejichž bity s vysokým pořadím označují, která část sekvence patří každému jednotlivému bytu. Jeden rozsah hodnot je přidělen pro první prvek kódu, druhý pro další prvky. Tím zajistíte disjunktní kódování.

kódování utf 8

ASCII

kódování UTF-8 je plně podporovány ASCII kódy (0x00-0x7F). To znamená, že znaky Unicode U + 0000-U + 007F jsou převedeny do jednoho bajtu 0x00-0x7F UTF-8 a tak se k nerozeznání od ASCII. Kromě toho, aby se předešlo nejasnostem, je hodnota 0x00-0x7F nepoužívá v jediném bajtu reprezentace Unicode. Pro kódování symbolů neideograficheskih jiné než ASCII, za použití posloupnosti dva bajty. Symboly v rozsahu U + 0800-U + FFFF jsou reprezentovány třemi bajty, a další kódy s více než U + FFFF vyžadovat čtyři bajty.

Rozsah aplikace

Kódování UTF-8 je obvykle preferováno v protokolu HTML a podobně.

XML se stal prvním standardem s úplnou podporou kódování UTF-8. Organizace zapojené do normalizace také doporučují. Problém podporující adresy URL jiné než znaky ASCII byl vyřešen, když konsorcium W3C a inženýrská skupina IETF souhlasily s kódováním všech URL adresy výhradně v UTF-8.

Kompatibilita s ASCII usnadňuje přechod na nový software. UTF-8 pracuje většina textových editorů, včetně JEdit, Emacs, BBEdit, Eclipse a Poznámkový blok operačního systému Windows. Žádná jiná forma kódování Unicode se nemůže pochlubit takovou podporou z nástrojů.

Výhodou kódování je, že se skládá ze sekvence bajtů. Pomocí řetězců UTF-8 je snadné pracovat v jazycích C a dalších programovacích jazycích. Jedná se o jedinou formu kódování, která nevyžaduje označení pořadí bajtů kusovníku nebo deklaraci kódování v XML.

html kódování utf 8

Vlastní synchronizace

V prostředí využívajícím 8bitové zpracování symbolů má UTF-8 v porovnání s jinými vícebajtovými kódování následující výhody:

  • První bajt kódové sekvence obsahuje informace o jeho délce. To zvyšuje efektivitu přímého vyhledávání.
  • Je snadnější najít začátek znaku, protože počáteční byte je omezen na pevný rozsah hodnot.
  • Neexistuje průsečík hodnot bytu.

Srovnání výhod

Kódování UTF-8 je kompaktní. Při přihlašování k kódování východoasijských znaků (čínštině, japonštině, korejštině, použití čínských znaků) se používají 3bajtové sekvence. Také kódování UTF-8 je nižší než jiné formy kódování rychlostí zpracování. Třídění binárních řetězců vytváří stejný výsledek jako binární třídění Unicode.

Schéma kódování znaků

Schéma kódování znaků se skládá z formátu kódování znaků a způsobu uspořádání kódových jednotek byte-po-pixelu. Chcete-li určit schéma kódování standardem Unicode, použije se počáteční značka byte (BOM, značka objednávky Byte).

Pokud je kusovník zapnutý v UTF-8, funkce štítku je omezena pouze uvedením použití formátu kódování. Problém určení pořadí bajtů v UTF-8 není, protože jeho velikost kódovací jednotky se rovná jednomu bytu. Použití kusovníku pro tento kódovací formulář není povinné ani doporučeno. Rozbalit všechny záložky | Minimalizovat všechny záložky Na této stránce Příznaky BOM může nastat v textech převedených z jiných kódování, které používají značky bajtů, nebo pro kódování UTF-8 podpis. Je to posloupnost 3 bajtů EF16 BB16 BF16.

soubor v utf 8 kódování

Jak nastavit kódování UTF-8

V Kódování HTML UTF-8 je nainstalován pomocí následujícího kódu:

˂head˃

˂meta http-equiv = "Obsahový typ" content = "text / html-charset = utf-8" ˂

V PHP je kódování UTF-8 nastaveno pomocí funkce header () na začátku souboru po nastavení hodnoty výstupní úrovně chyb:

˂? Php

error_reporting (-1);

header (`Content-Type: text / html- charset = utf-8 `);

Pro připojení k databázím MySQL je kódování UTF-8 nastaveno následovně:

˂? Php

mysql_set_charset (`utf8`);

V systémech CSS je kódování znaků UTF-8 zadáno následovně:

@charset "utf-8";

uložte jako utf 8

Při ukládání souborů všech typů je zvoleno kódování UTF-8 bez kusovníku, jinak web nebude fungovat. Chcete-li to provést, v programu DreamWeave vyberte položku nabídky "Modifikace - Vlastnosti stránky - Title / Coding", změňte kódování na UTF-8. Poté znovu načtěte stránku, zrušte zaškrtnutí políčka "Connect Unicode Signatures (BOM)" a použijte změny. Pokud byl některý text na stránce nebo v databázi zadán jiným kódem, musí být znovu zadán nebo znovu zakódován. Při práci s regulárními výrazy je povinné použít modifikátor u.

Soubor můžete také uložit v kódování UTF-8 v Poznámkovém bloku systému Windows. Po výběru položky nabídky "File - Save As ..." nastavte požadovaný formulář kódování a uložte soubor do kódování UTF-8.

V textovém editoru Notepad ++, je-li nastavena jiná než UTF-8, přes menu „Převést na UTF-8 bez BOM» změnit charakter a uložit ve formátu UTF-8.

kódování utf 8 bez bom

Neexistuje žádná alternativa

V kontextu globalizace, kdy jsou politické a jazykové hranice rozmazané, znakové sady, které mají místní charakteristiky, jsou méně užitečné. Unicode je jediná sada znaků, která podporuje všechna lokalizace. A UTF-8 je příkladem správné implementace Unicode, která:

  • podporuje širokou škálu nástrojů, včetně kompatibility s kódováním ASCII;
  • je odolná proti poškození dat;
  • jednoduché a účinné při zpracování;
  • nezávisí na platformě.

S příchodem debaty UTF-8 o jakou formu kódování nebo znaková sada je lepší, to ztrácí smysl.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru