RačunalnikiProgramiranje

UTF-8 - kodiranje znakov

Unicode podpira skoraj vse obstoječe nabor znakov. Najboljši način kodiranja Unicode nabor znakov je UTF-8 kodiranje. Podpira združljivost z ASCII, odpornost na izkrivljanje podatkov, učinkovitost in enostavnost obdelave. Ampak najprej stvari prvi.

kodiranje oblika

Računalniki delujejo ne samo kot številke abstraktne matematične predmete, kot tudi kombinacije enot za shranjevanje in ravnanje podatke za določen velikosti - bajt in 32-bitne besede. Kodiran mora to upoštevati pri določanju, kako predstaviti število znakov.

V računalniški sistemi, cela števila shranjene v pomnilniku celicah 8 bitov (1 bajt), 16 ali 32 bitov. Vsaka oblika opredeljuje Unicode kodiranje, ki sekvenca pomnilniških celic je celo število, ki ustreza določeni simbol. V standardu obstajajo tri različne oblike kodiranja znakov Unicode 8, 16 in 32-bitnih blokov. V skladu s tem, so znane kot UTF-8, UTF-16 in UTF-32. Ime UTF pomeni Unicode Transformation Format. Vsaka od treh oblik kodirajo sredstev je enaka zastopanost Unicode ima prednosti v različnih aplikacijah.

Šifriranje podatkov se lahko uporablja za predstavitev vseh znakov v standardu Unicode. Tako so v celoti skladni z rešitvami za različnih razlogov, z uporabo različnih oblik kodiranja. Vsak kodiranje nedvoumno mogoče pretvoriti v nobeno od drugih dveh, brez izgube podatkov.

načelo nenalozheniya

Vsaka kodira oblike Unicode razvita zaradi prepovedi delnega prekrivanja. Na primer, Windows-932 predstavlja znake enega ali dveh bajtov kode. Dolžina zaporedje odvisno od prvega bajta, tako da vodilni vrednosti bajti v seriji dveh bajt in enotno bajt Disjunktan. Vendar pa se vrednost posameznega bajt in zaključnimi zaporedje zlogov sovpadata. To na primer pomeni, da lahko iskanje znak R (oznaka 44) zdi, da pomotoma vstopajo v drugem delu zaporedja dvozložno znakov "D" (oznaka 84 44). Če želite izvedeti, katere zaporedje je pravilna, mora program upoštevati prejšnje bajte.

Situacija je zapletena, če je prednji in zadnji bajti igralcev. To pomeni, da se bo, da bi odpravili nejasnosti biti obratno iskanje preden doseže začetek besedila ali edinstveno kodo zaporedju. To ni samo neučinkovit, vendar ni zaščiten pred morebitnimi napakami, saj je le en napačen bajt na celotno besedilo postane neberljiv.

format pretvorbo Unicode izogiba ta problem, ker je vrednost vodilnega, zamujala, in ena enota za shranjevanje niso enake informacije. To zagotavlja, da vse Unicode za iskanje in primerjavo, nikoli ne daje napačne rezultate zaradi sovpadanja različnih delov kode znakov. Dejstvo, da te oblike kodiranja upoštevati načelo nenalozheniya, ki jih ločuje od drugih vzhodnoazijskih multi-byte kodiranja.

Drug vidik nonintersection Unicode kodiranja je, da ima vsak lik ima jasno določeno mejo. To odpravlja potrebo za skeniranje neomejeno število prejšnjih simbolov. Ta funkcija se včasih imenuje sam koklja kodiranje. Izkrivljanje kode enot bo uvedla izkrivljanje samo en znak, in okoliških znaki so še vedno nedotaknjena. Pri pretvorbi v format 8-bit, če se kazalec kaže na bajt, ki se začne z 10xxxxxx (v binarno kodo), najti je potrebno začetek simbola za eno do tri povratne prehodov.

doslednost

Unicode Consortium v celoti podpira vse 3 oblike kodiranja. Pomembno je, da ne bo nasprotovala UTF-8 in Unicode, kot vse oblike konverzije - enako veljavnih oblik izvedbi v znak-kodiranja standarda Unicode.

Bajt usmerjenost

Za predstavljajo UTF-32 znakov bo moral 32-bitno kodo enoto, ki sovpada s kodo Unicode. UTF-16 - enega do dva 16-bitnih enotah. UTF-8 uporablja do 4 bajtov.

UTF-8 kodiranje je zasnovan tako, da so združljivi s sistemi-byte usmerjenih, ki temeljijo na ASCII. Večina obstoječe programske opreme in prakse informacijske tehnologije za dalj časa, na katere se sklicuje zastopanosti znakov v zaporedje bajtov. Več protokoli odvisna od nespremenljivosti kodiranje ASCII in uporablja bodisi izogiba posebne kontrolne znake. Preprost način, da se prilagodijo na razmere, Unicode lahko s pomočjo 8-bitno kodiranje za zastopanje Unicode, drugega enakovrednega ASCII znak ali kontrolni znak. V ta namen, in je UTF-8 kodiranje.

spremenljiva dolžina

UTF-8 - kodiranje s spremenljivo dolžino, ki je sestavljen iz 8-bitnih skladiščne enote, zgornji bitov, ki kažejo na to, kateri del sekvence posameznega bajt pripada. Ena obseg vrednosti, dodeljenih prvi element zaporedja kode drugega - za dostavo. To zagotavlja disjointness kodiranje.

ASCII

UTF-8 kodiranje je v celoti podprt kode ASCII (0x00-0x7F). To pomeni, da so Unicode U + 0000-U + 007F pretvorijo v eno samo bajt 0x00-0x7F UTF-8 in tako postala neločljiva od ASCII. Poleg tega, da bi se izognili nejasnostim, vrednost 0x00-0x7F ne uporablja več v enem bajt zastopanje Unicode. Za kodiranje simbola neideograficheskih razen ASCII uporabo zaporedje dveh bajtov. Simboli segajo U + 0800-U + FFFF predstavljajo tri bajtov, ter dodatne oznake z več kot U + FFFF zahteva štiri bajte.

področje uporabe

UTF-8 kodiranje se običajno daje prednost pri protokolu HTML in podobno.

XML je postal prvi standard s polno podporo za UTF-8 kodiranje. Organizacije za standardizacijo priporočam tudi. Problem podpora v naslov URL, ki se razlikuje od ASCII-znaki, je bila rešena, ko je konzorcij W3C in IETF inženirska skupina prišla do dogovora za kodiranje vseh URL naslovov izključno v UTF-8.

Združljivost z ASCII omogoča prehod na novo programsko opremo. Z UTF-8 dela večino urednikov besedila, vključno z JEdit, Emacs, BBEdit, Eclipse, in "Beležnica" operacijski sistem Windows. Nobena druga oblika kodiranja Unicode ne more pohvaliti take podpore orodja.

kodiranje prednost je, da sestoji iz zaporedja zlogov. Z UTF-8, niz je enostavno delo v C in drugih programskih jezikih. To je edini način kodiranja, vrstni red ne zahteva nalepke bajti BOM ali deklaracija kodiranja v XML.

self-sinhronizacija

V okolju, ki uporablja 8-bitne znake obdelave v primerjavi z drugimi sklopov multi-byte znakov, UTF-8 ima naslednje prednosti:

  • Prvi bajt koda zaporedje vsebuje informacije o njeni dolžini. S tem se poveča učinkovitost neposrednega iskanja.
  • Poenostavljeno iskanje začetek simbola, kot je začetna bajt omejena na določeno vrsto vrednosti.
  • Ni križišče byte vrednosti.

Primerjajte prednosti

UTF-8 kodiranje je kompakten. Toda, ko se uporablja za kodiranje vzhodnoazijske znake (kitajski, japonski, korejski, kitajski pisanje z uporabo znakov) uporablja 3-byte sekvence. Tudi UTF-8 kodiranje je slabša od drugih oblik kodiranja hitrost obdelave. A binarni sortirne linije vedno isti kot binarno Unicode sortiranje.

Sistem kodiranja znakov

Sistem kodiranja znakov obsega kodiranje simbolov obliko in način za enkratno bajt lokacijo koda enote. Za določitev sheme kodiranja Unicode Standard omogoča uporabo začetno oznako bajt reda (BOM, Bajt da znamka).

Ko je BOM UTF-8 funkcij oznako omejena le s sklicevanjem na uporabo oblik kodiranja. Težave pri določanju endian UTF-8 imajo kot njena velikost kodiranje enota je en bajt. Uporaba BOM za to obliko kodiranja, niti potrebno niti priporočljivo. BOM lahko pojavi v besedilu, ki se pretvori z drugimi oznakami, ki uporabljajo bajt naročila pečat ali podpis za UTF-8 kodiranje. Je zaporedje 3 bajtov EF BB 16 16 BF 16.

Kako nastaviti kodiranje UTF-8

HTML kodiranje UTF-8 je nameščen z naslednjo kodo:

HEAD

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

V PHP je UTF-8 kodiranje nastavite s funkcijo header () na začetku datoteke po nastavitvi napako izhodne vrednosti ravni:

˂? PHP

error_reporting (-1);

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

Za priključitev na zbirko podatkov UTF-8 kodiranje nastavljeno:

˂? PHP

mysql_set_charset ( 'utf8');

kodiranje CSS-datoteka je UTF-8 znakov je določena, kot sledi:

@charset "UTF-8";

Ko shranite datoteke vseh vrst izbrati kodiranje UTF-8 brez BOM, sicer stran ne bo delovala. Če želite to narediti v DreamWeave morali izbrati točko menija "Spremembe - LASTNOSTI - Naslov / Encoding" s spremembo kodiranje UTF-8. s ponovnim nalaganjem strani sledi, odstranite kljukico iz "Connect Unicode podpis (BOM)» in uveljavitev sprememb. Če je bil kateri koli besedilo na strani ali v zbirki podatkov uvedla drugo obliko kodiranja, je potrebno, da ponovno vstopijo ali ponovno kodiranje. Ko delate z regularnimi izrazi, se prepričajte, da uporabite modifikator u.

Prav tako lahko shranite v kodiranju UTF-8 v "Beležnica" operacijskega sistema Windows. Po izbiri točko menija "Datoteka - Shrani kot ..." namestiti potrebno obliko kodiranja in shranite v UTF-8.

V urejevalnik besedil Notepad ++, če je določen, razen UTF-8, po točki menija "spremeniti v UTF-8 brez BOM» spremeni značaj in shranite v UTF-8.

ni nobene alternative

V okviru globalizacije, kjer so izbrisani politične in jezikovne meje, se nabor znakov, ki imajo lokalne značilnosti, so malo uporabe. Unicode je enoten nabor znakov, ki podpira vse lokalizacije. UTF-8 - Primer pravilnega izvajanja Unicode, ki je:

  • To podpira široko paleto orodij, vključno združljivost s kodiranjem ASCII;
  • To je odporen na podatke popačenja;
  • preprost in učinkovit pri zdravljenju;
  • je neodvisen od platforme.

S prihodom razprave v UTF-8, o tem, kakšno obliko kodiranja ali znakov niz je bolje, da postane nesmiselna.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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