UTF-8 - codificare de caractere

Unicode suportă aproape toate seturile de caractere existente. Cea mai bună codificare pentru setul de caractere Unicode este codarea UTF-8. Oferă compatibilitate cu ASCII, rezistență la coruperea datelor, eficiență și ușurință în prelucrare. Dar despre totul în ordine.

Forme de codificare

Calculatoarele funcționează cu numere nu doar ca obiecte matematice abstracte, ci și ca combinații de unități de stocare și procesare a informațiilor-octeți de dimensiuni fixe și cuvinte pe 32 de biți. Standardul de codificare trebuie să țină cont de acest lucru atunci când se determină modul de reprezentare caractere prin numere.

În sistemele informatice, numerele întregi sunt stocate în celule de memorie de 8 biți (1 octet), 16 sau 32 de biți. Fiecare formă de codare Unicode determină ce secvență de celule de memorie reprezintă un întreg corespunzător unui anumit caracter. Standardul oferă trei forme diferite de codificare a caracterelor Unicode: blocuri de 8, 16 și 32 de biți. În consecință, ele sunt numite UTF-8, UTF-16 și UTF-32. Numele UTF reprezintă formatul de conversie Unicode. Fiecare dintre cele trei forme de codificare este un mijloc egal de reprezentare a caracterelor Unicode, are avantaje în diverse aplicații.

Aceste codificări pot fi folosite pentru a reprezenta toate caracterele standardului Unicode. Astfel, ele sunt pe deplin compatibile pentru soluții din diferite motive folosind diferite forme de codificare. Fiecare codificare poate fi convertită în mod unic în oricare dintre celelalte două fără pierderea datelor.

utf 8 codificare

Principiul neimpozării

Fiecare dintre formularele de codare Unicode este concepută ținând cont de inadmisibilitatea suprapunerii parțiale. De exemplu, Windows-932 generează caractere de la unul sau doi octeți de cod. Lungimea secvenței depinde de primul octet, astfel încât valorile octetului conducător în secvența a două octeți și un singur octet nu se intersectează. Cu toate acestea, valorile octetului unic și octetul de închidere al secvenței pot fi aceleași. Aceasta înseamnă, de exemplu, că atunci când căutați caracterul D (cod 44), îl puteți găsi în mod greșit introducând a doua parte a secvenței de doi octeți ai caracterului "D" (cod 84 44). Pentru a determina ce secvență este corectă, programul trebuie să țină cont de octeții anteriori.

Situația devine mai complicată dacă maestrul și octetul de încheiere se potrivesc. Aceasta înseamnă că pentru a inversa ambiguitatea, se va efectua o căutare inversă până la începutul textului sau o secvență clară de cod. Acest lucru nu este numai ineficient, dar nu este protejat împotriva posibilelor erori, deoarece un octet rău este suficient pentru a face întregul text necitit.

Formatul de conversie Unicode evită această problemă, deoarece valorile unității de stocare a datelor, care se află în fruntea, ultima și singură, nu se potrivesc. Din acest motiv, toate codificările Unicode sunt potrivite pentru căutarea și compararea, fără a da vreun rezultat eronat datorită coincidenței diferitelor părți ale codului caracterului. Faptul că aceste formulare de codare respectă principiul non-alocării îi deosebește de alte codificări multi-asetice din Asia de Est.

Un alt aspect al neintersecției Seturi de caractere Unicode este că fiecare personaj are limite clar definite. Acest lucru elimină nevoia de a scana un număr nedeterminat de caractere anterioare. Această caracteristică a codificărilor este uneori numită auto-sincronizare. Distorsiunea unei unități de cod va duce la denaturarea unui singur caracter, iar caracterele înconjurătoare rămân intacte. În conversia format de 8-biți, în cazul în care indicatorul să octetul, începând cu 10xxxxxx (în cod binar) pentru a găsi este necesară începutul simbolului pentru una până la trei tranziții inverse.

codarea utf 8

consistență

Consorțiul Unicode suportă pe deplin toate cele 3 formulare de codificare. Este important să nu se opună UTF-8 și Unicode, deoarece toate formatele de conversie - în mod egal forme valide realizare a standardului de codificare a caracterelor Unicode.

Byte-orientare

Pentru a reprezenta simbolul UTF-32, aveți nevoie de o unitate de cod pe 32 de biți care să corespundă codului Unicode. UTF-16 - de la una la două unități de 16 biți. Și UTF-8 utilizează până la 4 octeți.

Codificarea UTF-8 este concepută pentru compatibilitatea cu sistemele bazate pe octeți bazate pe ASCII. Majoritatea practicilor existente în domeniul software-ului și al tehnologiei informației s-au bazat, de multă vreme, pe reprezentarea simbolurilor sub forma unei secvențe de octeți. Multe protocoale depind de neschimbate Codificări ASCII și utilizează sau evită caracterele de control speciale. O modalitate ușoară de a adapta unicode la astfel de situații este prin utilizarea codării pe 8 biți pentru a reprezenta caractere Unicode echivalente cu orice caracter ASCII sau caracter de control. Pentru aceasta, se intenționează codarea UTF-8.

Lungime variabilă

UTF-8 - codificare de lungime variabilă, care constă din unități de stocare de 8 biți, biții superiori care indicați în care o parte a secvenței fiecărui octet individ aparține. Un interval de valori este alocat pentru primul element al secvenței de cod, celălalt pentru elementele ulterioare. Aceasta asigură codificarea disjointă.

caracterul de codificare utf 8

ASCII

Codarea UTF-8 suportă pe deplin codurile ASCII (0x00-0x7F). Aceasta înseamnă că caracterele Unicode U + 0000-U + 007F sunt convertite într-un singur octet 0x00-0x7F UTF-8 și devin astfel imposibil de distins de ASCII. Mai mult decât atât, pentru a evita ambiguitatea, valoarea 0x00-0x7F nu a folosit nici mai mult într-o reprezentare octet unic de caractere Unicode. Pentru a codifica alte simboluri non-ideografice, altele decât ASCII, este utilizată o secvență de doi octeți. Simboluri gama U + 0800-U + FFFF sunt reprezentate de trei octeți și coduri adiționale cu mai mult de U + FFFF necesită patru octeți.

Domeniul de aplicare

Codificarea UTF-8 este de obicei preferată în protocolul HTML și similar cu acesta.

XML a devenit primul standard cu suport complet pentru codarea UTF-8. Organizațiile implicate în standardizare, de asemenea, o recomandă. Problema suportării adreselor URL, altele decât caracterele ASCII, a fost rezolvată atunci când consorțiul W3C și grupul de ingineri IETF au convenit să codifice toate adrese URL exclusiv în UTF-8.

Compatibilitatea cu ASCII facilitează trecerea la software nou. Cu UTF-8 majoritatea editorilor de text funcționează, inclusiv JEdit, Emacs, BBEdit, Eclipse și Notepad ale sistemului de operare Windows. Nici o altă formă de codare Unicode nu se poate lauda cu un astfel de suport din instrumente.

Avantajul codificării constă într-o secvență de octeți. Cu șirul UTF-8, este ușor să lucrați în C și în alte limbi de programare. Aceasta este singura formă de codificare care nu necesită marcarea ordinii octeților BOM sau a declarației de codificare în XML.

html codare utf 8

auto-sincronizare

Într-un mediu care utilizează procesarea simbolurilor pe 8 biți, în comparație cu alte codări multibit, UTF-8 are următoarele avantaje:

  • Primul octet al secvenței de cod conține informații despre lungimea sa. Acest lucru crește eficiența căutării directe.
  • Este mai ușor să găsim începutul caracterului, deoarece octetul inițial este limitat la o gamă fixă ​​de valori.
  • Nu există o intersecție a valorilor octeților.

Compararea avantajelor

Codarea UTF-8 este compactă. Dar când se aplică pentru codificarea caracterelor din Asia de Est (chineză, japoneză, coreeană, folosind caractere chinezești) se utilizează secvențe de 3 octeți. De asemenea, codificarea UTF-8 este inferioară altor forme de codificare prin viteza de procesare. O sortare binară a șirurilor produce același rezultat ca un sortare binară Unicode.

Schema de codificare a caracterelor



Schema de codificare a caracterelor constă dintr-un formular de codificare a caracterelor și o metodă de aranjare octet-cu-pixel a unităților de cod. Pentru a determina schema de codificare cu standardul Unicode, este prevăzută utilizarea marcajului de ordonare inițială (BOM, marcaj de comandă byte).

Atunci când BOM-ul este activat în UTF-8, funcția de etichetare este limitată numai prin indicarea utilizării formularului de codificare. Problema determinării ordinii byte-urilor în UTF-8 nu este, deoarece dimensiunea unității de codare este egală cu un octet. Utilizarea BOM pentru acest formular de codificare nu este nici obligatorie, nici recomandată. BOM poate apărea în texte convertite din alte codificări care utilizează semnul de ordine octet sau pentru semnătura codificării UTF-8. Este o secvență de 3 octeți de EF16 BB16 BF16.

fișier în utf 8 codificare

Cum se stabilește codarea UTF-8

În Codarea HTML UTF-8 este instalat folosind următorul cod:

cap

˂meta http-equiv = "conținut-tip" content = "text / html-charset = utf-8" ˂

În PHP, codarea UTF-8 este setată folosind funcția header () la începutul fișierului după ce a fost setată valoarea nivelului de eroare:

˂? Php

error_reporting (-1);

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

Pentru a vă conecta la bazele de date MySQL, codarea UTF-8 este setată după cum urmează:

˂? Php

mysql_set_charset (`utf8`);

În fișierele CSS, codificarea caracterelor UTF-8 este specificată după cum urmează:

@charset "utf-8";

salvați ca utf 8

Atunci când salvați fișiere de toate tipurile, este selectată codarea UTF-8 fără BOM, în caz contrar site-ul nu va funcționa. Pentru a face acest lucru, în programul DreamWeave, selectați elementul de meniu "Modificări - Proprietăți pagină - Title / Coding", modificați codificarea în UTF-8. Apoi, trebuie să reîncărcați pagina, debifați caseta "Conectați semnăturile Unicode (BOM)" și aplicați modificările. Dacă un text din pagină sau din baza de date a fost introdus de un alt formular de codificare, atunci acesta trebuie reintrodus sau re-codat. Când lucrați cu expresii regulate, este obligatoriu să utilizați modificatorul u.

De asemenea, puteți salva fișierul în codificarea UTF-8 în Windows Notepad. După selectarea elementului de meniu "File - Save As ..." setați formularul de codificare dorit și salvați fișierul în codarea UTF-8.

Într-un editor de text Notepad ++, dacă este setat altele decât UTF-8, prin elementul de meniu „Conversia la UTF-8 fără BOM» schimba caracterul și de a salva în UTF-8.

codarea utf 8 fără bom

Nu există nicio alternativă

În contextul globalizării, când limitele politice și lingvistice sunt neclare, seturile de caractere care au caracteristici locale devin mai puțin folositoare. Unicode este singurul set de caractere care acceptă toate localizările. Și UTF-8 este un exemplu de implementare corectă a Unicode, care:

  • sprijină o gamă largă de instrumente, inclusiv compatibilitatea cu codificarea ASCII;
  • este rezistent la coruperea datelor;
  • simplu și eficient în prelucrare;
  • nu depinde de platformă.

Odată cu apariția UTF-8, discuțiile despre ce formă de codificare sau set de caractere sunt mai bune au devenit lipsite de sens.

Distribuiți pe rețelele sociale:

înrudit
ASCII (cod standard american pentru schimbul de informații) - codificarea textului de bază pentru…ASCII (cod standard american pentru schimbul de informații) - codificarea textului de bază pentru…
ASCII, simboluri: descriere, tabel de cod și vizualizăriASCII, simboluri: descriere, tabel de cod și vizualizări
O modalitate de codificare a informațiilor folosind numere. Codificare binarăO modalitate de codificare a informațiilor folosind numere. Codificare binară
Câți biți în octeți? Ce este un pic și octet?Câți biți în octeți? Ce este un pic și octet?
Codificarea este ... Sisteme semnate: informații de codificareCodificarea este ... Sisteme semnate: informații de codificare
Ce este codarea și decodificarea? Exemple. Metode de codare și decodificare a informațiilor…Ce este codarea și decodificarea? Exemple. Metode de codare și decodificare a informațiilor…
Care este codificarea informațiilor și procesarea acestora?Care este codificarea informațiilor și procesarea acestora?
Codificare Unicode: standard de codificare a caracterelorCodificare Unicode: standard de codificare a caracterelor
De ce codificarea binară este universală? Metode de programareDe ce codificarea binară este universală? Metode de programare
Care este puterea alfabetului? Cum să găsiți puterea alfabetului: formulaCare este puterea alfabetului? Cum să găsiți puterea alfabetului: formula
» » UTF-8 - codificare de caractere