PočítačeProgramovanie

UTF-8 - kódovanie znakov

Unicode podporuje prakticky všetky existujúce znakovej sady. Najlepšia forma kódovanie Unicode znakovú sadu je kódovanie UTF-8. Podporuje zlučiteľnosť s ASCII, odolnosť ku skresleniu údajov, účinnosť a jednoduchosť spracovania. Ale poporiadku.

kódovanie formulár

Počítače fungujú nielen ako čísla abstraktné matematické objekty, rovnako ako kombinácia jednotiek skladovaní a manipulácii pevné veľkosti dát - byte a 32-bitová slová. Kódovacie štandard, musí vziať do úvahy pri určovaní, ako prezentovať počet znakov.

V počítačových systémoch, celé čísla uložené v pamäťových bunkách 8 bitov (1 byte), 16 alebo 32 bitov. Každá forma definuje kódovanie Unicode, ktorá rad pamäťových buniek je celé číslo zodpovedajúce určitého symbolu. V norme sú tri rôzne formy kódovania znakov Unicode 8, 16 a 32-bitových blokov. V súlade s tým, sú známe ako UTF-8, UTF-16 a UTF-32. Názov UTF znamená Unicode Transformation Format. Každá z týchto troch foriem kódovacieho prostriedku je rovný zastúpenie Unicode znak má výhody v rôznych aplikáciách.

šifrovanie dát možno použiť na reprezentovať všetky znaky v štandarde Unicode. Preto, sú plne kompatibilné s riešením pre celý rad dôvodov, za použitia rôznych foriem kódovania. Každý kódovanie možno jednoznačne previesť na niektorý z ďalších dvoch bez straty dát.

princíp nenalozheniya

Každý z formy kódovania Unicode vyvinutý s ohľadom na non čiastočné prekrývanie. Napríklad Windows-932 tvoria znaky jedného alebo dva bajty kódu. Dĺžka sekvencie je závislá na prvý byte, takže vodcovské hodnoty bytov v sérii dvoch byte a jedného byte disjunktné. Avšak hodnota jedného bajtu a koncové bajt sekvencie môže zhodovať. To napríklad znamená, že charakter vyhľadávanie D (kód 44), môže to omylom vstupe do druhej časti sekvencie dvoch-znakovej "D" (kód 84 44). Ak chcete zistiť, ktorá sekvencie je správna, program by mal vziať do úvahy predchádzajúce bajtov.

Situácia je zložitejšia, ak sa zápas predné a zadné bajtov. To znamená, že za účelom odstránenia nejednoznačnosti bude spätné vyhľadávanie pred dosiahnutím začiatok textu alebo unikátny kód sekvencie. To je nielen neefektívne, ale nie je chránený pred možnými chybami, pretože jediný chybný bajt na plné znenie je nečitateľný.

Konverzie formátu Unicode vyhýba tento problém, pretože hodnota vedúci, koncové a jeden celok úložiská nie sú rovnaké informácie. Tým je zaistené, že všetky Unicode pre vyhľadávanie a porovnávanie, nikdy dávať chybné výsledky vzhľadom k súbehu rôznych častí kódu znaku. Skutočnosť, že tieto formy kódovanie dodržiavať zásadu nenalozheniya, odlišuje od ostatných východoázijských multi-byte kódovanie.

Ďalším aspektom nonintersection kódovanie Unicode je, že každá postava má jasne definovanú hranicu. Tým sa eliminuje potreba skenovať neurčitého počtu predchádzajúcich symbolov. Táto funkcia sa niekedy nazýva self-stopovanie kódovanie. Skreslenie jednotiek kódu predstaví skreslenie len v jednom znaku, a okolité postavy sú stále neporušené. V 8-bitové konverziu formátu, v prípade, že ukazovateľ ukazuje na byt, počnúc 10xxxxxx (v binárnom kóde) nájsť je nutné začiatok symbolu pre jednu až tri reverznej prechody.

konzistencia

Unicode Consortium plne podporuje všetky 3 formy kódovania. Je dôležité, aby proti UTF-8 a Unicode, ako všetky formáty konverzie - rovnako platné formy prevedení štandard kódovania znakov Unicode.

byte orientácia

Reprezentovať UTF-32 charaktery budú potrebovať 32-bitový kód jednotku, ktorá sa zhoduje s kódom Unicode. UTF-16 - jeden až dva 16-bitových jednotkách. UTF-8 používa až 4 bajty.

kódovanie UTF-8 je navrhnutý tak, aby bol kompatibilný so systémami byte orientované ASCII báze. Väčšina existujúceho softvéru a prax informačných technológií po dlhú dobu spoliehal na reprezentáciu znakov v postupnosti bajtov. Viac protokolov závisí od stability kódovanie ASCII a používa buď vyhýba špeciálne riadiace znaky. Jednoduchý spôsob, ako prispôsobiť sa situáciám Unicode môžu pomocou 8-bitové kódovanie pre reprezentovať znaky Unicode, akejkoľvek rovnocennej ASCII znak alebo riadiaci znak. Za týmto účelom, a to je kódovanie UTF-8.

premennej dĺžky

UTF-8 - kódovanie premennej dĺžky, ktorý sa skladá z 8-bitových skladovacie jednotky, horné bity, ktoré udávajú, na ktorú časť sekvencie každého jednotlivého bytu patrí. Jeden rozsah hodnôt pridelených na prvý prvok sekvencie kódu, ďalšie - na ďalšie. To poskytuje disjointness kódovania.

ASCII

kódovanie UTF-8 je plne podporované ASCII kódy (0x00-0x7F). To znamená, že znaky Unicode U + 0000-U + 007F sú prevedené do jedného bajtu 0x00-0x7F UTF-8 a tak sa na nerozoznanie od ASCII. Okrem toho, aby sa predišlo nejasnostiam, je hodnota 0x00-0x7F nepoužíva v jedinom bajtu reprezentácie Unicode. Pre kódovanie symbolov neideograficheskih iné ako ASCII, za použitia postupnosti dva bajty. Symboly v rozsahu U + 0800-U + FFFF sú reprezentované tromi bajty, a ďalšie kódy s viac ako U + FFFF vyžadovať štyri bajty.

oblasť použitia

kódovanie UTF-8 je zvyčajne daná prednosť v protokole HTML, a podobne.

XML sa stal prvý štandard s plnou podporou pre kódovanie UTF-8. Normalizačné organizácie ho tiež odporučiť. Problém podpora v URL adrese, ktorá je odlišná od ASCII znakmi, bol vyriešený, keď konzorcium W3C a IETF strojárskej skupiny prišiel k dohode o kódovanie všetkých URL adries iba v UTF-8.

Kompatibilita s ASCII uľahčuje prechod na nový softvér. S UTF-8 pracuje väčšina textových editorov, vrátane jEdit, Emacs, BBEdit, Eclipse a "Poznámkový blok" v operačnom systéme Windows. Žiadna iná forma kódovania Unicode nemôže pochváliť takejto pomoci nástroja.

kódovanie výhodu, je to, že sa skladá zo sekvencie bytov. S UTF-8 reťazec je ľahké s ním pracovať v C a iné programovacie jazyky. Toto je jediný spôsob kódovania poradí nevyžaduje štítky bytov BOM alebo vyhlásenia kódovanie v XML.

self-synchronizácia

V prostredí, ktoré používa 8-bitové symboly na spracovanie v porovnaní s inými multi-byte znakovej sady, UTF-8 má nasledujúce výhody:

  • Prvý bajt kódu sekvencia obsahuje informácie o jeho dĺžke. Tým sa zvyšuje účinnosť priameho vyhľadávania.
  • Zjednodušené zistenie začiatku symbolu ako predvolené bajt je obmedzená na pevnú rozsahu hodnôt.
  • Žiadne križovatka byte hodnoty.

Porovnať výhody

kódovanie UTF-8 je kompaktná. Ale keď sa používa pre kódovanie východoázijských znakov (čínština, japončina, kórejčina, čínština písanie pomocou značiek) používa 3-byte sequence. Tiež kódovanie UTF-8 je nižšia ako iné formy kódovanie rýchlosť spracovania. Binárne triediace linky produkuje rovnaký výsledok ako binárny triedenie Unicode.

Schéma kódovania znakov

Schéma kódovania znakov obsahuje kódovanie symbolov formu a spôsob pre jedného bajtu kódu polohy jednotiek. Pre určenie schémy kódovania Unicode štandard poskytuje použitie počiatočná značka poradí bajtov (BOM, značka poradí bajtov).

Keď sa BOM v UTF-8 zahŕňa štítok je obmedzený len s odkazom na použitie foriem kódovania. Problémy pri určovaní endian UTF-8 má, ako je jeho veľkosť kódovacie jednotka je jeden bajt. nie je ani potrebná, ani doporučené pomocou BOM pre túto formu kódovanie. BOM môže dôjsť v texte, ktoré majú byť prevedené z iných kódovanie pomocou značka poradí bajtov alebo podpis pre kódovanie UTF-8. Je sled 3 bajty EF BB 16 16 BF 16.

Ako nastaviť kódovanie UTF-8

HTML kódovanie UTF-8 je nainštalovaná s nasledujúci kód:

hlava

Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃

V PHP je kódovanie UTF-8 nastaviť prostredníctvom funkcie header () na začiatku súboru po nastavení chybu výstupná úroveň hodnoty:

˂? PHP

error_reporting (-1);

header ( "Content-Type: text / html; charset = UTF-8,);

Ak sa chcete pripojiť k databáze MySQL kódovanie UTF-8 je nastavený:

˂? PHP

mysql_set_charset ( 'utf8');

Kódovanie CSS-súbor je UTF-8 znakov je špecifikovaný takto:

@charset "utf-8";

Ak uložíte súbory všetkých typov zvoliť kódovanie UTF-8 bez BOM, inak stránky nebudú fungovať. Ak to chcete v DreamWeave potrebné vybrať bod menu "Modifikácia - Vlastnosti stránky - Názov / Kódovanie" pre zmenu kódovanie na UTF-8. Nasledované opätovným načítaním stránky, zrušte zaškrtnutie políčka z "podpis Connect Unicode (BOM)» a použiť zmeny. Ak niektorý text na stránke alebo v databáze bol predstavený iný spôsob kódovania, je nutné znovu zadať alebo re-kódovať. Pri práci s regulárnymi výrazmi, je nutné použiť modifikátor u.

Môžete tiež uložiť súbor v kódovaní UTF-8 v "Poznámkový blok" systému Windows. Po zvolení položky menu "Súbor - Uložiť ako ..." nainštalovať potrebnú formu kódovanie a uložte súbor vo formáte UTF-8.

V textovom editore Notepad ++, ak je nastavená iná ako UTF-8, cez menu "Previesť na UTF-8 bez BOM» zmeniť charakter a uložiť vo formáte UTF-8.

neexistuje žiadna alternatíva

V súvislosti s globalizáciou, kedy sú vymazané politické a jazykové hranice, znakovej sady, ktoré majú miestne charakteristiky, sú k ničomu. Unicode je jediná znaková sada, ktorá podporuje všetky lokalizácií. UTF-8 - príklad riadneho vykonávania Unicode, ktorý je:

  • Podporuje širokú škálu nástrojov, vrátane kompatibility s kódovaním ASCII;
  • Je odolný proti skreslenie dát;
  • jednoduchý a účinný v liečbe;
  • je nezávislý na platforme.

S príchodom debaty UTF-8 o akú formu kódovanie alebo znaková sada je lepšie, to stráca zmysel.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sk.birmiss.com. Theme powered by WordPress.