CalculatoareProgramare

UTF-8 - codificarea caracterelor

Unicode suportă aproape toate seturile de caractere existente. Cea mai bună formă de codificare set de caractere Unicode este codificarea UTF-8. Aceasta susține compatibilitatea cu ASCII, rezistenta la denaturarea datelor, eficiența și ușurința de prelucrare. Dar, mai întâi lucrurile primele.

formularul de codificare

Calculatoarele funcționează nu numai ca numere de obiecte abstracte matematice, precum și combinațiile de unități de stocare și manipulare a datelor de dimensiune fixă - octet și cuvinte de 32 de biți. codificarea standard trebuie să ia în considerare acest lucru atunci când se stabilește modul în care să prezinte numărul de caractere.

În sistemele informatice, numerele întregi stocate în celulele de memorie de 8 biți (1 octet), 16 sau 32 de biți. Fiecare formă definește o codificare Unicode, care secvență de celule de memorie este un număr întreg care corespunde unui anumit simbol. În standard există trei forme diferite de codificare caractere Unicode 8, 16 și 32 de biți blocuri. Prin urmare, acestea sunt cunoscute ca UTF-8, UTF-16 și UTF 32. Nume UTF reprezintă Format Transformare Unicode. Fiecare dintre cele trei forme de mijloace care codifică este egal reprezentarea caracterelor Unicode are avantaje în diverse aplicații.

Criptarea datelor pot fi folosite pentru a reprezenta toate caracterele din standardul Unicode. Astfel, ele sunt pe deplin compatibile cu soluțiile pentru o varietate de motive, folosind diferite forme de codificare. Fiecare codificare poate fi transformată fără ambiguități în oricare dintre celelalte două, fără pierderi de date.

principiul nenalozheniya

Fiecare dintre codarea formelor Unicode dezvoltate în vederea suprapunerii parțiale non. De exemplu, Windows-932 formează caracterele unul sau doi octeți de cod. Lungimea secvenței depinde de primul octet, astfel încât valorile octet de lider în seria de doi octeți și un singur octet disjuncte. Cu toate acestea, valoarea unui singur octet și secvența de octeți trailing pot să coincidă. Aceasta înseamnă, de exemplu, că căutarea caracterului D (cod 44) se poate găsi în mod greșit intrarea în cea de a doua porțiune a secvenței de doi octeți de caractere „D“ (cod 84 44). Pentru a afla care este secvența corectă, programul ar trebui să ia în considerare octeții anterioare.

Situația este complicată, în cazul în care meciul de conducere și trailing bytes. Acest lucru înseamnă că, în scopul de a elimina ambiguitatea va fi o căutare inversă înainte de a ajunge la începutul textului sau secvența de cod unic. Acest lucru nu este numai ineficient, dar nu este protejat de posibile erori, deoarece numai un singur octet greșit textul integral a devenit imposibil de citit.

Formatul de conversie Unicode evită această problemă, deoarece valoarea de conducere, adulmecarea, și o singură unitate de stocare nu sunt aceleași informații. Acest lucru asigură că toate Unicode pentru căutare și comparare, niciodată nu da rezultate eronate din cauza coincidență de diferite părți ale codului de caractere. Faptul că aceste forme de codificare respectă principiul nenalozheniya, le diferențiază de alte codificări din Asia de Est multi-octet.

Un alt aspect nonintersection codificări Unicode este că fiecare caracter are frontieră clar definit. Aceasta elimină necesitatea de a scana un număr nelimitat de simboluri anterioare. Această caracteristică este uneori numită codare auto-pontaj. Denaturarea unităților de cod va introduce o denaturare a doar un singur caracter, iar caracterele din jur sunt încă 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.

consistență

Unicode Consortium sprijină pe deplin toate cele 3 forme de codificări. 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 UTF-32 de caractere vor avea nevoie de o unitate de cod pe 32 de biți, care coincide cu codul Unicode. UTF-16 - una la două unități de 16-biți. Un UTF-8 utilizează până la 4 octeți.

codificare UTF-8 este proiectat pentru a fi compatibil cu sistemele bazate pe ASCII orientate pe octet. Cea mai mare parte a software-ului existent și practica tehnologiei informației pentru o lungă perioadă de timp bazat pe reprezentarea caracterelor într-o secvență de octeți. protocoale multiple depinde de constanța de codificare ASCII și folosește fie evită caracterele speciale de control. Un mod simplu de a se adapta la situații Unicode poate, folosind codificarea 8-biți pentru reprezentarea de caractere Unicode, orice caracter ASCII echivalent sau un caracter de control. În acest scop, și este codificarea 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. O serie de valori alocate pentru primul element al secvenței de cod, un alt - pentru următorul. Aceasta oferă codare disjuncția.

ASCII

Codurile ASCII de codificare UTF-8 este sprijinit pe deplin (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 simboluri neideograficheskih altele decât ASCII, folosind 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.

sfera de aplicare

codificarea UTF-8, de obicei, este preferată în protocolul HTML și altele asemenea.

XML a devenit primul standard cu suport complet pentru codificarea UTF-8. Organizațiile de standardizare, de asemenea, recomanda. problemă de sprijin în adresa URL care este diferit de ASCII reprezintă caractere, a fost rezolvată atunci când W3C Consortium si grupul de inginerie IETF a ajuns la un acord cu privire la codificarea tuturor adreselor URL exclusiv în UTF-8.

Compatibilitatea cu ASCII facilitează trecerea la noul software. UTF-8 funcționează cele mai multe editoare de text, inclusiv jedit, Emacs, BBEdit, Eclipse, și "Notepad" sistemul de operare Windows. Nici o altă formă de codare Unicode nu se poate lăuda cu un astfel de suport al sculei.

codificare avantaj este acela că ea constă dintr-o secvență de octeți. UTF-8 string este ușor de a lucra în C și în alte limbaje de programare. Aceasta este singura formă de codificare, ordinea nu are nevoie de etichete bytes BOM sau o declarație de codificare în XML.

auto-sincronizare

Într-un mediu care utilizează simboluri 8 biți de prelucrare în comparație cu alte seturi de caractere multi-octet, UTF-8 are următoarele avantaje:

  • Prima secvență de cod octet conține informații despre lungimea sa. Acest lucru crește eficiența de căutare directă.
  • Simplificată găsirea începutul simbolului ca octetul de pornire este limitat la un interval fix de valori.
  • Nu există valori intersecție octet.

Comparați beneficiile

codificarea UTF-8 este compact. Dar atunci când sunt utilizate pentru codificarea de caractere din Asia de Est (chineză, japoneză, coreeană, chineză scris folosind semne) utilizate secvențe de 3 octeți. De asemenea, codarea UTF-8 este inferior altor forme de codificare a vitezei de procesare. O linie de sortare binare produce același rezultat ca binar de sortare Unicode.

Schema de codificare a caracterelor

Schema de codificare a caracterelor cuprinde formă simboluri de codare și metodă pentru unitățile de cod de locație singur octet. Pentru a determina schema de codificare standard de Unicode prevede utilizarea unei mărci inițiale comandă octet (BOM, Byte mark ordine).

Când BOM în UTF-8 tag caracteristică este limitată doar prin referire la utilizarea unor forme de codificare. Probleme în determinarea endian UTF-8 au, ca dimensiunea sa unitate de codificare este un octet. Utilizarea BOM pentru această formă de codificare nu este nici necesară și nici recomandată. BOM poate apare în textul care urmează să fie convertit de la alte codificări folosind marca octet ordine sau semnătură pentru codificarea UTF-8. Este o secvență de 3 octeți EF BB 16 16 BF 16.

Cum de a seta codificarea UTF-8

HTML de codificare UTF-8 este instalat cu următorul cod:

cap

META http-echivalent = "Content-Type" content = "text / html; charset = utf-8" ˃

În PHP codificarea UTF-8 este setată folosind funcția header () la începutul fișierului după setarea erorii de ieșire valoarea nivelului:

˂? PHP

error_reporting (-1);

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

Pentru a vă conecta la o bază de date MySQL codificare UTF-8 este setat:

˂? PHP

mysql_set_charset ( 'utf8');

Codarea CSS-fișier este de caractere UTF-8 este specificată după cum urmează:

@charset "utf-8";

Când salvați fișierele de toate tipurile alege codificarea UTF-8 fără BOM, în caz contrar site-ul nu va funcționa. Pentru a face acest lucru în DreamWeave nevoie pentru a selecta elementul de meniu „Modificări - Proprietăți Pagina - Titlu / Codificare“ pentru a schimba codificarea UTF-8. Urmat de reîncărcarea paginii, eliminați marcajul de validare din „Connect Unicode semnătură (BOM)» și aplica modificările. În cazul în care a fost introdus nici un text de pe o pagină sau într-o bază de date o altă formă de codificare, este necesar să se re-intra sau re-encode. Când lucrați cu expresii regulate, asigurați-vă că pentru a utiliza modificatorul u.

De asemenea puteți salva fișierul în codificarea UTF-8 în „Notepad“ din Windows. După selectarea elementului de meniu „File - Save As ...“ pentru a instala formularul necesar de codificare și salvați fișierul în 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.

nu există nici o alternativă

În contextul globalizării, în cazul în care granițele politice și lingvistice sunt șterse, seturile de caractere care au caracteristici locale, sunt de puțin folos. Unicode este un set de caractere unic care acceptă toate localizări. Un UTF-8 - un exemplu de implementare corectă a Unicode, care este:

  • Aceasta susține o gamă largă de instrumente, inclusiv compatibilitatea cu codarea ASCII;
  • Este rezistent la date distorsiuni;
  • simplu și eficient în tratamentul;
  • este independent de platforma.

Odată cu apariția UTF-8 cu privire la dezbaterea ce formă de codificare sau setul de caractere este mai bine, devine lipsită de sens.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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