RačunalaProgramiranje

UTF-8 - kodiranje znakova

Unicode podržava gotovo sve postojeće skupove znakova. Najbolji oblik kodiranja Unicode skup znakova je UTF-8 kodiranje. Ona podržava kompatibilnost s ASCII, otpornost na izobličenje podataka, efikasnost i jednostavnost obrade. Ali prvih stvari prvi.

kodiranje obrazac

Računala rade ne samo kao brojke apstraktne matematičke objekte, kao i kombinacije jedinica skladištenja i rukovanja podacima fiksne veličine - bajt i 32-bitne riječi. Standarda za kodiranje mora uzeti u obzir prilikom određivanja kako predstaviti broj znakova.

U računarskim sistemima, cijele brojeve pohranjene u memoriji ćelijama 8 bita (1 bajt), 16 ili 32 bita. Svaki oblik definira Unicode kodiranja, koji redoslijed memorijskih ćelija je cijeli broj koji odgovara na određeni simbol. U standardnoj postoje tri različita oblika kodiranja Unicode znakova 8, 16 i 32-bitnim blokovima. U skladu s tim, oni su poznati kao UTF-8, UTF-16 i UTF-32. Ime UTF je skraćenica za Unicode Transformation Format. Svaki od tri oblika kodiranja sredstava jednaka zastupljenost Unicode znak ima prednosti u različitim aplikacijama.

enkripciju podataka može se koristiti za predstavljanje sve znakove u Unicode standard. Dakle, oni su u potpunosti kompatibilan sa rješenjima iz raznih razloga, koristeći različite oblike kodiranja. Svaki kodiranje se nedvosmisleno može pretvoriti u bilo koji od druga dva, bez gubitka podataka.

nenalozheniya princip

Svaki od oblika Unicode kodiranje razvijena s obzirom na ne parcijalne preklapanja. Na primjer, Windows-932 čini znakove jednog ili dva bajta koda. Dužina sekvenca zavisi od prvog bajta, tako da je vodeća bajt vrijednosti u nizu dva bajta i jednobajtni disjunktni. Međutim, vrijednost jednog bajta i zadnji bajt sekvenca može poklopiti. To znači na primjer da je potraga karakter D (kod 44) možete pronaći ga greškom ulazak u drugi dio sekvence dva bajta karaktera "D" (šifra 84 44). Da biste saznali koji sekvenca je ispravan, program treba uzeti u obzir prethodne bajtova.

Situacija je komplikovana, ako je vodeći i prateći bajtova utakmicu. To znači da će u cilju otklanjanja nejasnoća biti Reverse Lookup prije dolaska početka teksta ili jedinstveni slijed koda. Ovo nije samo neefikasna, ali nije zaštićen od mogućih grešaka, jer je samo jedan pogrešan bajt na puni tekst postao nečitljiv.

Konverzija formata Unicode izbjegava ovaj problem jer je vrijednost od vodećih, zadnji, i jednu jedinicu za pohranu nisu iste informacije. Time se osigurava da sve Unicode za pretraživanje i usporedbu, nikada daju pogrešne rezultate zbog podudarnost različitih dijelova koda karaktera. Činjenica da su ovi oblici kodiranja poštuju načelo nenalozheniya, što ih razlikuje od drugih istočnoazijske multi-byte kodiranja.

Drugi aspekt nonintersection Unicode kodiranja je da svaki lik ima jasno definirane granice. Ovo eliminira potrebu za skeniranje u neograničenom broju prethodnih simbola. Ova funkcija se ponekad naziva samo-takta kodiranje. Izobličenja kod jedinica će uvesti distorziju samo jedan lik, i okolne likovi su netaknuti. U konverzije format 8-bitni, ako pokazivač pokazuje na bajt, počevši sa 10xxxxxx (u binarnom kodu) da početak simbol je potreban za jednu do tri unazad tranzicije.

dosljednost

Unicode Consortium u potpunosti podržava sve 3 oblika kodiranja. Važno je da se ne suprotstavljaju UTF-8 i Unicode, kao i sve formate konverzije - jednako važi oblici utjelovljenje Unicode standarda za kodiranje znakova.

Byte-orijentacija

Da predstavljaju UTF-32 znaka će biti potreban kod jedinica 32-bitni, što se poklapa sa Unicode koda. UTF-16 - 01:59 16-bitne jedinice. UTF-8 koristi do 4 bajta.

UTF-8 kodiranje je dizajniran da bude kompatibilan sa sistemima bajt-orijentiran ASCII-based. Većina postojećih softvera i prakse informacijske tehnologije za dugo vremena oslanjali na predstavljanje znakova u nizu bajtova. Više protokola ovisi o konstantnosti ASCII kodiranje i koristi ili izbjegava specijalnih znakova kontrole. Jednostavan način da se prilagode situacijama Unicode mogu, koristeći 8-bitni kodiranje za zastupanje Unicode znakova, bilo ekvivalent ASCII znakova ili kontrolu karakter. U tom cilju, a to je UTF-8 kodiranje.

različitih dužina

UTF-8 - kodiranja varijabilne dužine, koji se sastoji od jedinice 8-bitni za pohranu, gornji bitova koje ukazuju na koji dio sekvence svakog pojedinca bajta pripada. Jedan raspon vrijednosti dodeljen prvi element niza koda, drugi - za sljedeću. Ovo pruža disjointness kodiranje.

ASCII

UTF-8 kodiranje je u potpunosti podržan ASCII kodova (0x00-0x7F). To znači da je Unicode znakove U + 0000-U + 007F se pretvaraju u jedan bajt 0x00-0x7F UTF-8 i na taj način se ne mogu razlikovati od ASCII. Osim toga, da bi se izbjegle nejasnoće, vrijednost 0x00-0x7F ne koristi više u jednom bajtu zastupljenost Unicode znakova. Za kodiranje simboli neideograficheskih osim ASCII, koristeći niz dva bajta. Simboli u rasponu U + 0800-U + FFFF su predstavljene tri bajta, i dodatne kodove s više od U + FFFF zahtijevaju četiri bajta.

sfere primjene

UTF-8 kodiranje obično se daje prednost u HTML protokol, i slično.

XML je postao prvi standard uz punu podršku za UTF-8 kodiranje. Organizacije za standarde i preporučujemo. Problem podrška u URL adresu koja se razlikuje od ASCII-znakova, je riješen kada je konzorcijum W3C i IETF inženjering grupa je došla do dogovora o kodiranje svih URL adresa isključivo u UTF-8.

Kompatibilnost sa ASCII olakšava prelazak na novi softver. Sa UTF-8 radi većina teksta, uključujući jEdit, Emacs, BBEdit, Eclipse, i "Notepad" Windows operativni sistem. Nijedan drugi oblik kodiranja Unicode se ne mogu pohvaliti takve podrške alata.

kodiranja prednost je u tome što se sastoji od niza bajtova. Sa UTF-8 string je lako raditi u C i drugim programskim jezicima. Ovo je jedini oblik kodiranja, nalog ne zahtijeva oznake bajtova sastavnice ili kodiranje deklaracije u XML-u.

self-sinhronizacija

U okruženju koje koristi 8-bitni simboli obrade u usporedbi s drugim setovima multi-byte karakter, UTF-8 ima sljedeće prednosti:

  • Prva sekvenca bajt kod sadrži informacije o njegovom dužinom. To povećava efikasnost direktna pretraga.
  • Pojednostavljeno pronalaženje početka simbol kao polaznu bajt je ograničena na fiksni raspon vrijednosti.
  • No raskrsnici bajt vrijednosti.

Usporedite prednosti

UTF-8 kodiranje je kompaktan. Ali, kada se koristi za kodiranje istočno-azijske znakove (kineski, japanski, korejski, kineski pisanja pomoću znakova) koristi 3-bajt sekvenci. Također UTF-8 kodiranje je inferioran u odnosu na druge oblike kodiranja brzinu obrade. Binarna linija za sortiranje daje isti rezultat kao binarni sortiranje Unicode.

Kodiranje znakova shemu

Kodiranje znakova shema se sastoji od kodiranja simboli oblik i način za jedan bajt lokacija kod jedinica. Da biste utvrdili shemu kodiranja Unicode standard omogućava korištenje početne oznake bajt reda (BOM, Byte bi oznaka).

Kada se sastavnice u UTF-8 funkcija citat ograničena samo pozivanjem na upotrebu oblika kodiranja. Problemi u određivanju endian UTF-8 ima, kao što je njegova kodiranje jedinice veličine jedan bajt. Koristeći sastavnice za ovaj oblik kodiranja nije ni potrebno ni preporučljivo. BOM se može javiti u tekstu koji treba pretvoriti iz drugih kodiranja pomoću bajtova znak ili potpis za UTF-8 kodiranje. Je niz od 3 bajta EF BB 16 16 BF 16.

Kako postaviti UTF-8 kodiranje

U HTML kodiranje UTF-8 je instaliran sa sljedeći kod:

glava

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

U PHP-u UTF-8 kodiranje obavlja se pomoću funkcije zaglavlja () na početku datoteke nakon postavljanja grešku razinu izlazne vrijednosti:

˂? Php

error_reporting (-1);

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

Da biste se povezali baze podataka MySQL UTF-8 kodiranje je postavljen:

˂? Php

mysql_set_charset ( 'utf8');

Kodiranje CSS-datoteke je UTF-8 znakova je navedeno kako slijedi:

@charset "UTF-8";

Kada sačuvate datoteke svih vrsta odabrati UTF-8 kodiranje bez sastavnice, inače stranica neće raditi. Da biste to učinili u DreamWeave potrebno je da izaberete stavku izbornika "Modifikacije - Svojstva - Naziv / kodiranje" promijeniti kodiranje u UTF-8. Zatim ponovnim učitavanjem stranice, uklonite kvačice iz "Connect Unicode potpis (BOM)» i primijeniti promjene. Ako je bilo koji tekst na stranici ili u bazi podataka uveden drugi oblik kodiranja, neophodno je da se vrate ili ponovno kodiranje. Kada radite sa regularnim izrazima, budite sigurni da koristite modifikator u.

Također se možete sačuvati datoteku u UTF-8 kodiranje u "Notepad" Windowsa. Nakon odabira stavke "File - Save As ..." instalirati neophodan oblik kodiranja i sačuvajte datoteku u UTF-8.

U tekst editor Notepad ++, ako su podešeni osim UTF-8, preko meniju "Pretvori u UTF-8 bez BOM» promijeniti karakter i osim u UTF-8.

nema alternative

U kontekstu globalizacije, gdje se brišu političke i jezičke granice, skupovi znakova koji imaju lokalne karakteristike, nisu od velike koristi. Unicode je jedan skup znakova koji podržava sve lokalizacije. UTF-8 - primjer pravilnog sprovođenja Unicode, a to je:

  • Ona podržava širok spektar alata, uključujući i kompatibilnost sa ASCII kodiranje;
  • To je otporan na distorziju podataka;
  • jednostavan i efikasan u liječenju;
  • neovisne o platformi.

Pojavom debate UTF-8 o tome oblik kodiranja ili karakter set je bolje, postaje besmislen.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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