UTF-8 - kodiranje znakova

Unicode podržava gotovo sve postojeće skupove znakova. Najbolje kodiranje za Unicode skup znakova je UTF-8 kodiranje. Omogućuje kompatibilnost s ASCII, otpornost na korupciju podataka, učinkovitost i jednostavnost obrade. Ali o svemu u redu.

Obrasci kodiranja

Računala rade s brojevima ne samo kao apstraktni matematički objekti, već kao kombinacije jedinica pohrane i obrade fiksnih veličina informacija bajtova i 32-bitnih riječi. Standard kodiranja mora uzeti u obzir prilikom određivanja načina reprezentacije znakova prema brojevima.

U računalnim sustavima, integers se pohranjuju u memorijske ćelije od 8 bita (1 bajt), 16 ili 32 bita. Svaki Unicode oblik kodiranja određuje koji slijed ćelija memorije predstavlja cijeli broj koji odgovara određenom znaku. Standard sadrži tri različita oblika kodiranja Unicode znakova: 8, 16 i 32-bitni blokovi. Prema tome, oni se nazivaju UTF-8, UTF-16 i UTF-32. Naziv UTF označava format pretvorbe Unicode. Svaki od tri oblika kodiranja jednako je sredstvo predstavljanja Unicode znakova, ima prednosti u raznim aplikacijama.

Ova kodiranja mogu se koristiti za predstavljanje svih znakova Unicode standarda. Stoga su u potpunosti kompatibilni s rješenjima iz raznih razloga koji koriste različite oblike kodiranja. Svako kodiranje može se jedinstveno pretvoriti u bilo koju drugu dvojicu bez gubitka podataka.

utf 8 kodiranje

Načelo neisplate

Svaki od Unicode oblika za kodiranje dizajniran je uzevši u obzir neprihvatljivost djelomičnog preklapanja. Na primjer, Windows 932 generira znakove iz jednog ili dva bajta koda. Duljina slijeda ovisi o prvom bajtu, tako da se vrijednosti vodećih bajtova u nizu od dva bajta i jednim bajtom ne presijecaju. Međutim, vrijednosti jednog bajta i zatvarajućeg bajta slijeda mogu biti jednake. To znači na primjer, da je potraga lik D (šifra 44) nalaze se pogrešno ulazak u drugi dio slijeda dva bajta znakova „D” (kod 84 44). Da bi se utvrdilo koja je sekvenca točna, program mora uzeti u obzir prethodne bajtove.

Situacija postaje složenija ako se majstor i završni bajt poklapaju. To znači da će preokrenuti dvosmislenost, obrnuto pretraživanje biti izvršeno sve do početka teksta ili nedvosmislenog slijeda koda. Ovo nije ne samo neučinkovito, ali nije zaštićeno od mogućih pogrešaka, jer je jedan loš bajt dovoljan da cijeli tekst bude nečitljiv.

Format Unicode pretvorbe izbjegava taj problem jer vrijednosti vodeće, prateće i pojedinačne jedinice pohrane podataka ne odgovaraju. Zbog toga su sve Unicode šifre prikladne za pretraživanje i usporedbu, a nikada ne daju pogrešan rezultat zbog koincidencije različitih dijelova znakovnog koda. Činjenica da ovi kodni oblici poštuju načelo nesudjelovanja razlikuju ih od drugih višestrukih istočnoazijskih kodiranja.

Još jedan aspekt nenazođenja Unicode skup znakova je da svaki lik ima jasno definirane granice. Time se eliminira potreba skeniranja neodređenog broja prethodnih znakova. Ova značajka kodiranja ponekad se zove self-synchronization. Izobličenje jedne jedinice koda dovodi do iskrivljavanja samo jednog znaka, a okolni znakovi ostaju netaknuti. U 8-bitnom formatu pretvorbe, ako se pokazivač odnosi na bajt koji započinje s 10xxxxxx (u binarnom kodiranju), potrebno je jedan do tri preokrenuti prijelaz da bi se pronašao početak znaka.

kodiranje utf 8

dosljednost

Konzorcij Unicode u potpunosti podržava sva 3 oblika kodiranja. Važno je da se ne suprotstavite UTF-8 i Unicode jer su svi formati pretvorbe jednako legitimne implementacije Unicode oblika kodiranja znakova.

Bajt orijentacije

Da biste prikazali simbol UTF-32, trebate jednu 32-bitnu jedinicu koda koja odgovara Unicode kodu. UTF-16 - od jedne do dvije 16-bitne jedinice. A UTF-8 koristi do 4 bajta.

Kodiranje UTF-8 je dizajnirano za kompatibilnost s byte orijentiranim sustavima baziranim na ASCII. Većina postojećih programa i informacijske tehnologije već se dugo vremena oslanjaju na prikaz simbola u obliku nizova bajtova. Mnogi protokoli ovise o nepromijenjenom ASCII kodiranje i koristi ili izbjegava posebne kontrolne znakove. Jednostavan način da se prilagodi situaciji Unicode može, koristeći 8-bitni kodiranje za zastupanje Unicode znakove, bilo ekvivalent ASCII znaka ili kontrolni karakter. Za to je namijenjeno kodiranje UTF-8.

Varijabilna duljina

UTF-8 - kodiranje varijabilne duljine, koji se sastoji od 8-bitne jedinice za pohranu, gornja bita koji pokazuju na koji dio sekvence svakog pojedinog byte pripada. Jedan je raspon vrijednosti dodijeljen za prvi element kodnog slijeda, a drugi za sljedeće elemente. To osigurava odjeljenje kodiranja.

kodiranje znakova utf 8

ASCII

UTF-8 kodiranje u potpunosti podržava ASCII kodove (0x00-0x7F). To znači da se Unicodeovi znakovi U + 0000-U + 007F pretvaraju u jedan bajt 0x00-0x7F UTF-8 i time postaju nerazlučivi od ASCII. Štoviše, kako bi se izbjegla nejasnoća, vrijednosti 0x00-0x7F više se ne koriste u bilo kojem bajtu reprezentacije Unicode znakova. Za kodiranje ne-ideografskih simbola, osim ASCII, koristi se niz od dvije bajta. Simboli raspona U + 0800-U + FFFF prikazani su s tri bajta, a dodatni kodovi s kodovima veći od U + FFFF zahtijevaju četiri bajta.

Opseg primjene

Kodiranje UTF-8 obično je poželjno u HTML protokolu i slično.

XML je postao prvi standard s punom podrškom za kodiranje UTF-8. Organizacije uključene u standardizaciju također preporučuju. Problem podržavanja URL adresa, osim ASCII znakova, riješen je kada su konzorcij W3C i IETF-ova inženjerska grupa pristale enkodirati sve URL adrese isključivo u UTF-8.

Kompatibilnost s ASCII olakšava prijelaz na novi softver. S UTF-8 radi većinu tekstualne editore, uključujući JEdit, Emacs, BBEdit, Eclipse, i "Notepad" operacijskog sustava Windows. Nijedan drugi oblik Unicode kodiranja ne može se pohvaliti takvom podrškom iz alata.

Prednost kodiranja je da se sastoji od niza bajtova. Uz UTF-8 nizove, lako je raditi na C i drugim programskim jezicima. Ovo je jedini oblik kodiranja koji ne zahtijeva označavanje redoslijeda BOM bajta ili deklaracije kodiranja u XML-u.

HTML kodiranje utf 8

self-sinkronizacija

U okruženju koje koristi 8-bitnu obradu simbola, u usporedbi s drugim multibyte kodovima, UTF-8 ima sljedeće prednosti:

  • Prvi bajt kodne sekvence sadrži informacije o njegovoj duljini. To povećava učinkovitost izravnog pretraživanja.
  • Lakše je pronaći početak znaka, budući da je početni bajt ograničen na fiksni raspon vrijednosti.
  • Nema raskrižja vrijednosti bajtova.

Usporedba prednosti



Kodiranje UTF-8 je kompaktno. No pri prijavi za kodiranje istočnoazijskih znakova (kineski, japanski, korejski, pomoću kineskih znakova) koriste se 3-byte sekvencije. Također, kodiranje UTF-8 je inferiorno drugim oblicima kodiranja brzinom obrade. Binarno sortiranje nizova proizvodi isti rezultat kao binarni Unicode.

Shema kodiranja znakova

Shema kodiranja znakova sastoji se od oblika za kodiranje znakova i metode postavljanja byte-by-pixel kodnih jedinica. Za određivanje sheme za kodiranje Unicode standardni osigurava uporabu početne bajt naloga oznake (BOM bajt red oznaka).

Kada je BOM uključen u UTF-8, funkcija oznake ograničena je samo označavanjem upotrebe obrasca za kodiranje. Problem određivanja redoslijeda bajtova u UTF-8 nije, budući da je njegova veličina jedinice kodiranja jednaka jednom bajtu. Korištenje BOM-a za ovaj obrazac za kodiranje nije ni obavezno niti preporučljivo. BOM se može pojaviti u tekstovima konvertiranim iz drugih kodova koji koriste oznaku narudžbe bajta ili za potpisivanje kodiranja UTF-8. To je redoslijed od 3 bajta EF16 BB16 BF16.

datoteka u utf 8 kodiranje

Kako postaviti UTF-8 kodiranje

U HTML kodiranje UTF-8 se instalira pomoću sljedećeg koda:

glava

˂meta http-equiv = "Content-Type" content = "tekst / html-charset = utf-8" ˂

U PHP-u, kodiranje UTF-8 se postavlja pomoću funkcije zaglavlja () na samom početku datoteke nakon postavljanja vrijednosti izlazne razine pogreške:

˂? Php

error_reporting (-1);

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

Za povezivanje s MySQL bazama podataka, kodiranje UTF-8 je postavljeno na sljedeći način:

˂? Php

mysql_set_charset (`utf8`);

U CSS datotekama kodiranje znakova UTF-8 određeno je kako slijedi:

@charset "utf-8";

spasiti kao utf 8

Kada spremate datoteke svih vrsta, odabire se kodiranje UTF-8 bez BOM, inače web stranica neće funkcionirati. Da biste to učinili u DreamWeave potrebno odabrati točku izbornika „Izmjene - Page Properties - naziv / Kodiranje” za promjenu kodiranje UTF-8. Zatim trebate ponovo učitati stranicu, poništite okvir "Spojite Unicode potpise (BOM)" i primijenite promjene. Ako je bilo koji tekst na stranici ili u bazi podataka unesen drugi obrazac za kodiranje, onda ga mora ponovno unijeti ili ponovno kodirati. Kada radite s uobičajenim izrazima, potrebno je koristiti modifikator u.

Također možete spremiti datoteku u UTF-8 kodiranje u programu Windows Notepad. Nakon odabira stavke izbornika "File - Save As ..." postavite traženi obrazac za kodiranje i spremite datoteku u UTF-8 kodiranje.

U Notepad ++ uređivaču teksta, ako se kodiranje razlikuje od UTF-8, promijenite kodiranje i spremite ga u UTF-8 kodiranje putem stavke izbornika "Pretvori u UTF-8 bez BOM-a".

kodiranje utf 8 bez bom

Nema alternative

U kontekstu globalizacije, kada su političke i jezične granice zamagljene, skupovi karaktera koji imaju lokalne karakteristike postaju manje korisni. Unicode je jedini skup znakova koji podržava sve lokalizacije. A UTF-8 je primjer ispravne implementacije Unicode, koji:

  • podržava širok raspon alata, uključujući kompatibilnost s ASCII kodiranjem;
  • je otporan na korupciju podataka;
  • jednostavan i učinkovit u obradi;
  • ne ovisi o platformi.

S pojavom UTF-8, rasprave o tome koji oblik kodiranja ili skup znakova su bolji postali su besmisleni.

Dijelite na društvenim mrežama:

Povezan
ASCII (američki standardni kod za razmjenu informacija) - osnovno kodiranje teksta za latinicuASCII (američki standardni kod za razmjenu informacija) - osnovno kodiranje teksta za latinicu
ASCII, simboli: opis, tablica koda i prikaziASCII, simboli: opis, tablica koda i prikazi
Način kodiranja podataka pomoću brojeva. Binarno kodiranjeNačin kodiranja podataka pomoću brojeva. Binarno kodiranje
Koji je AAC format?Koji je AAC format?
Kodiranje je ... Potpisani sustavi: kodiranje podatakaKodiranje je ... Potpisani sustavi: kodiranje podataka
Kodiranje i dekodiranje je teško?Kodiranje i dekodiranje je teško?
Što je kodiranje i dekodiranje? Primjeri. Metode kodiranja i dekodiranja podataka numeričkih,…Što je kodiranje i dekodiranje? Primjeri. Metode kodiranja i dekodiranja podataka numeričkih,…
Unicode šifriranje: standard za kodiranje znakovaUnicode šifriranje: standard za kodiranje znakova
Zašto je binarno kodiranje univerzalno? Programske metodeZašto je binarno kodiranje univerzalno? Programske metode
Programiranje: Java. Vrste podatakaProgramiranje: Java. Vrste podataka
» » UTF-8 - kodiranje znakova
LiveInternet