OqPoWah.com

UTF-8 - kodiranje znakov

Unicode podpira skoraj vse obstoječe nabore znakov. Najboljše kodiranje za znak Unicode je UTF-8 kodiranje. Zagotavlja združljivost z ASCII, odpornost proti korupciji podatkov, učinkovitost in enostavnost obdelave. Toda o vsem, kar je v redu.

Oblike kodiranja

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. Standard kodiranja mora to upoštevati pri določanju načina predstavitve znakov s številkami.

V računalniških sistemih so cela števila shranjena v celicah spomina 8 bitov (1 bajt), 16 ali 32 bitov. Vsaka oblika kodiranja Unicode določa, katero zaporedje pomnilniških celic predstavlja celo število, ki ustreza določenemu znaku. Standard vsebuje tri različne oblike kodiranja znakov Unicode: 8, 16 in 32-bitnih blokov. V skladu s tem se imenujejo UTF-8, UTF-16 in UTF-32. Ime UTF pomeni format pretvorbe Unicode. Vsaka od treh oblik kodiranja je enako sredstvo za predstavljanje znakov Unicode, ima prednost pri različnih aplikacijah.

Ta kodiranja se lahko uporabijo za prikaz vseh znakov standarda Unicode. Tako so popolnoma združljivi za rešitve iz različnih razlogov z uporabo različnih oblik kodiranja. Vsako kodiranje je lahko edinstveno pretvorjeno v katerokoli od dveh, brez izgube podatkov.

utf 8 kodiranje

Načelo neimenovanja

Vsaka od kodnih kod za Unicode je zasnovana ob upoštevanju nedopustnosti delnega prekrivanja. Na primer, Windows-932 ustvarja znake iz ene ali dveh bajtov kode. Dolžina zaporedje odvisno od prvega bajta, tako da vodilni vrednosti bajti v seriji dveh bajt in samem bajtu ne sekata. Vendar pa so lahko vrednosti enojnega bajta in zaključnega bajta zaporedja enake. To pomeni, na primer, da pri iskanju znaka D (koda 44) lahko napačno ugotovite, da vstopi v drugi del zaporedja dveh bajtov znaka "D" (koda 84 44). Da bi ugotovili, katera zaporedja so pravilna, mora program upoštevati prejšnje bajte.

Položaj postane bolj zapleten, če se glavni in zaključni bajt ujemata. To pomeni, da se obrnete na dvoumnost, izvede povratno iskanje do začetka besedila ali nedvoumno zaporedje kode. To ni le neučinkovito, ampak ni zaščiteno pred morebitnimi napakami, saj je en slab bajt dovolj, da celotno besedilo ni čitljivo.

Format pretvorbe Unicode se izogne ​​tej težavi, ker se vrednosti vodilne, sledilne in enote enote shranjevanja informacij ne ujemajo. Zaradi tega so vse kodiranje Unicode primerne za iskanje in primerjavo, pri čemer nikoli ne dajejo napačnega rezultata zaradi naključnosti različnih delov znakovne kode. Dejstvo, da te kodne oblike spoštujejo načelo nesodelovanja, jih razlikuje od drugih multibyte vzhodnoazijskih kod.

Drug vidik neintersekcije Kompleti znakov Unicode je, da ima vsak znak jasno določene meje. S tem se odpravi potrebo po skeniranju nedoločenega števila prejšnjih znakov. Ta značilnost kodiranja se včasih imenuje samo-sinhronizacija. Izkrivljanje ene enote kode bo povzročilo izkrivljanje samo enega znaka in ostali znaki ostanejo nedotaknjeni. 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.

kodiranje utf 8

Usklajenost

Konzorcij Unicode v celoti podpira vse 3 kodne forme. Pomembno je, da ne nasprotujete UTF-8 in Unicode, ker so vsi konverzijski formati enako zakonite izvedbe oblik kodiranja znakov Unicode.

Byte-usmerjenost

Če želite predstaviti simbol UTF-32, potrebujete eno 32-bitno enoto kode, ki se ujema z kodo Unicode. UTF-16 - od ene do dveh 16-bitnih enot. UTF-8 uporablja do 4 bajta.

Kodiranje UTF-8 je zasnovano za združljivost z bajtno usmerjenimi sistemi, ki temeljijo na ASCII. Večina obstoječih praks programske opreme in informacijske tehnologije se že dolgo časa opira na predstavitev simbolov v obliki zaporedja bajtov. Veliko protokolov je odvisno od nespremenjene ASCII kodiranje in uporablja ali se izogiba posebnim kontrolnim znakovom. 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. Za to je namenjen kodiranje UTF-8.

Spremenljiva dolžina

UTF-8 je kodiranje s spremenljivo dolžino, sestavljeno iz 8-bitnih enot za shranjevanje podatkov, katerih bitovi z visokim zaporedjem označujejo, kateri del zaporedja je vsak posamezni bajt. En niz vrednosti je dodeljen za prvi element zaporedja kode, drugi za naslednje elemente. To zagotavlja disjoint kodiranje.

znakovno kodiranje utf 8

ASCII

Kodiranje UTF-8 v celoti podpira kodo 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 ne-ideografskih simbolov, razen ASCII, se uporablja 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

Kodiranje UTF-8 je običajno prednostno v protokolu HTML in podobno.

XML je postal prvi standard s polno podporo za kodiranje UTF-8. Tudi organizacije, vključene v standardizacijo, priporočajo. Podpora problem 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 o kodiranje vseh URL-ji izključno v UTF-8.

Združljivost z ASCII olajša prehod na novo programsko opremo. Z UTF-8 večino besedilnih urednikov dela, vključno z JEdit, Emacs, BBEdit, Eclipse in Notepad operacijskega sistema Windows. Nobena druga oblika kodiranja Unicode se ne more pohvaliti s takšno podporo iz orodij.

Prednost kodiranja je, da je sestavljena iz zaporedja bajtov. Z nizi UTF-8 je enostavno delo v C in drugih programskih jezikih. To je edina oblika kodiranja, ki ne zahteva označevanja vrstnega reda bajtov BOM ali izjave o kodiranju v XML.

html kodiranje utf 8

Self-Sync

V okolju, ki uporablja 8-bitno obdelavo simbolov, ima UTF-8 v primerjavi z drugimi večbitalnimi kodami naslednje prednosti:

  • Prvi bajt kodnega zaporedja vsebuje informacije o njegovi dolžini. To povečuje učinkovitost neposrednega iskanja.
  • Lažje je najti začetek znaka, saj je začetni bajt omejen na določen obseg vrednosti.
  • Ne preseže vrednosti bajtov.

Primerjava prednosti

Kodiranje UTF-8 je kompaktno. Ampak pri uporabi za kodiranje vzhodnoazijskih znakov (kitajski, japonski, korejski, z uporabo kitajskih znakov) se uporabljajo 3-bajtna zaporedja. Prav tako je kodiranje UTF-8 slabše od drugih oblik kodiranja s hitrostjo obdelave. Binarno razvrščanje nizov proizvaja isti rezultat kot binarna sorta Unicode.

Shema kodiranja znakov




Shema kodiranja znakov je sestavljena iz oblike kodiranja znakov in metode kodiranja enote kodiranja po slikovnih pik. Če želite določiti kodirno shemo s standardom Unicode, je zagotovljena uporaba začetne oznake za bajt (BOM, oznaka za bajt).

Ko je BOM vklopljen v UTF-8, je funkcija oznake omejena le z navedbo uporabe obrazca za kodiranje. Problem določanja vrstnega reda bajtov v UTF-8 ni, ker je njegova velikost kodirne enote enaka enemu bajtu. Uporaba BOM za ta kodni obrazec ni niti obvezna niti priporočljiva. BOM se lahko pojavi v besedilih, pretvorjenih iz drugih kod, ki uporabljajo oznako za oznake bajtov ali za kodiranje UTF-8. To je zaporedje 3 bajtov EF16 BB16 BF16.

datoteko v UTF 8 kodiranju

Kako nastaviti kodiranje UTF-8

V Ljubljani HTML kodiranje UTF-8 je nameščen z uporabo naslednje kode:

˂head

˂meta http-equiv = "Content-Type" vsebina = "text / html-charset = utf-8"

V PHP je kodiranje UTF-8 nastavljeno z uporabo funkcije header () na samem začetku datoteke, potem ko nastavite vrednost izhodnega nivoja napake:

˂? Php

error_reporting (-1);

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

Za povezavo z MySQL bazami podatkov je kodiranje UTF-8 nastavljeno na naslednji način:

˂? Php

mysql_set_charset (`utf8`);

V datotekah CSS je kodiranje znakov UTF-8 določeno tako:

@ charset "utf-8";

shranite kot utf 8

Pri shranjevanju vseh vrst datotek je izbrano kodiranje UTF-8 brez BOM, v nasprotnem primeru spletno mesto ne bo delovalo. Če želite to narediti, v programu DreamWeave izberite postavko "Spremembe - Lastnosti strani - Naslov / Kodiranje", spremenite kodiranje v UTF-8. Potem morate ponovno naložiti stran, počistite polje "Connect Unicode Signatures (BOM)" in uporabite spremembe. Če je bil kateri koli besedilo na strani ali v zbirki podatkov uvedla drugo obliko kodiranja, je potrebno, da ponovno vstopijo ali ponovno kodiranje. Pri delu z regularnimi izrazi je obvezno uporabiti u-modifikator.

Datoteko lahko shranite tudi v kodiranju UTF-8 v programu Windows Notepad. Ko izberete postavko "File - Save As ...", nastavite zahtevan obrazec za kodiranje in shranite datoteko v kodiranje 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.

kodiranje utf 8 brez bom

Ni alternative

V kontekstu globalizacije, ko so politične in jezikovne meje zamegljene, znakovni nizi, ki imajo lokalne značilnosti, postanejo manj koristni. Unicode je edini nabor znakov, ki podpira vse lokalizacije. UTF-8 je primer pravilnega izvajanja Unicode, ki:

  • podpira široko paleto orodij, vključno z združljivostjo s kodiranjem ASCII;
  • je odporen na korupcijo podatkov;
  • preprosta in učinkovita pri obdelavi;
  • ni odvisna od platforme.

S prihodom UTF-8 so razprave o tem, katere oblike kodiranja ali nabora znakov so boljše, postale brez pomena.

Zdieľať na sociálnych sieťach:

Príbuzný