UTF-8 je kratica za ' Format Unicode transformacije 8-bitni ” i odgovara izvrsnom formatu kodiranja koji osigurava da se znakovi ispravno prikazuju na svim uređajima bez obzira na korišteni jezik/pismo. Također, ovaj format je pomoćni za web stranice i koristi se za pohranu, obradu i prijenos tekstualnih podataka na internetu.
Ovaj vodič pokriva dolje navedena područja sadržaja:
- Što je UTF-8 kodiranje?
- Kako radi UTF-8 kodiranje?
- Kako se izračunavaju vrijednosti kodnih bodova?
- Kako kodirati/dekodirati UTF-8 u JavaScriptu?
- Kodiranje/dekodiranje UTF-8 u JavaScriptu korištenjem metoda “encodeURIComponent()” i “decodeURIComponent()”.
- Kodiranje/dekodiranje UTF-8 u JavaScriptu korištenjem metoda “encodeURI()” i “decodeURI()”.
- Kodiranje/dekodiranje UTF-8 u JavaScriptu korištenjem regularnih izraza.
- Zaključak
Što je UTF-8 kodiranje?
“ UTF-8 kodiranje ” je postupak pretvaranja niza Unicode znakova u kodirani niz koji se sastoji od 8-bitnih bajtova. Ovo kodiranje može predstavljati veliki raspon znakova u usporedbi s drugim kodiranjem znakova.
Kako radi UTF-8 kodiranje?
Prilikom predstavljanja znakova u UTF-8, svaka pojedinačna točka koda predstavljena je jednim ili više bajtova. Slijedi raščlamba kodnih točaka u ASCII rasponu:
- Jedan bajt predstavlja kodne točke u ASCII rasponu (0-127).
- Dva bajta predstavljaju kodne točke u ASCII rasponu (128-2047).
- Tri bajta predstavljaju kodne točke u ASCII rasponu (2048-65535).
- Četiri bajta predstavljaju kodne točke u ASCII rasponu (65536-1114111).
Takav je da je prvi bajt ' UTF-8 ” niz se naziva „ vodeći bajt ” koji daje informacije o broju bajtova u nizu i vrijednosti kodne točke znaka.
'Vodeći bajt' za niz od jednog, dva, tri i četiri bajta je u rasponu (0-127), (194-233), (224-239), odnosno (240-247).
Ostali bajtovi u nizu nazivaju se ' zaostajući ” bajtova. Svi bajtovi za niz od dva, tri i četiri bajta su u rasponu (128-191). To je takvo da se vrijednost kodne točke znaka može izračunati analizom bajtova na početku i na kraju.
Kako se izračunavaju vrijednosti kodnih bodova?
Vrijednosti kodnih točaka za različite nizove bajtova izračunavaju se na sljedeći način:
- Dvobajtni niz: Kodna točka je ekvivalentna '((lb – 194) * 64) + (tb – 128)'.
- Niz od tri bajta : Kodna točka je ekvivalentna '((lb – 224) * 4096) + ((tb1 – 128) * 64) + (tb2 – 128)'.
- Niz od četiri bajta : Kodna točka je ekvivalentna '((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)'.
Kako kodirati/dekodirati UTF-8 u JavaScriptu?
Kodiranje i dekodiranje UTF-8 u JavaScriptu može se provesti putem dolje navedenih pristupa:
- “ enodeURIComponent() ' i ' decodeURIComponent() ” Metode.
- “ kodirajURI() ' i ' decodeURI() ” Metode.
- Regularni izrazi.
Pristup 1: Kodiranje/dekodiranje UTF-8 u JavaScriptu korištenjem metoda “encodeURIComponent()” i “decodeURIComponent()”
' encodeURIComponent() ” metoda kodira URI komponentu. Također, može kodirati posebne znakove kao što su @, &, :, +, $, #, itd. decodeURIComponent() ” metoda, međutim, dekodira URI komponentu. Ove se metode mogu koristiti za kodiranje i dekodiranje proslijeđenih vrijednosti u UTF-8.
Sintaksa (“encodeURIComponent()” metoda)
encodeURIComponent ( x )U navedenoj sintaksi, ' x ” označava URI koji treba kodirati.
Povratna vrijednost
Ova metoda je dohvatila kodirani URI kao niz.
Sintaksa (“decodeURIComponent()” metoda)
decodeURIComponenta ( x )Ovdje, ' x ” odnosi se na URI koji treba dekodirati.
Povratna vrijednost
Ova metoda daje dekodirani URI.
Primjer 1: Kodiranje UTF-8 u JavaScriptu
Ovaj primjer kodira proslijeđeni niz u kodiranu UTF-8 vrijednost uz pomoć korisnički definirane funkcije:
povratak ubjeći se ( encodeURIComponent ( x ) ) ;
}
neka val = 'ovdje' ;
konzola. log ( 'Dana vrijednost -> ' + val ) ;
neka encodeVal = kodiranje_utf8 ( val ) ;
konzola. log ( 'Kodirana vrijednost -> ' + encodeVal ) ;
U ovim linijama koda izvedite dolje navedene korake:
- Najprije definirajte funkciju ' kodiranje_utf8() ” koji kodira proslijeđeni niz predstavljen navedenim parametrom.
- Ovo kodiranje vrši ' encodeURIComponent() ” metoda u definiciji funkcije.
- Bilješka: ' poništi izlaz () ” metoda zamjenjuje bilo koju izlaznu sekvencu sa znakom koji ona predstavlja.
- Nakon toga inicijalizirajte vrijednost koju želite kodirati i prikažite je.
- Sada pozovite definiranu funkciju i proslijedite definiranu kombinaciju znakova kao svoje argumente za kodiranje ove vrijednosti u UTF-8.
Izlaz
Ovdje se može implicirati da su pojedinačni znakovi predstavljeni i kodirani u skladu s tim u UTF-8.
Primjer 2: Dekodiranje UTF-8 u JavaScriptu
Donja demonstracija koda dekodira proslijeđenu vrijednost (u obliku znakova) u kodiranu UTF-8 reprezentaciju:
povratak decodeURIComponenta ( pobjeći ( x ) ) ;
}
neka val = 'à çè' ;
konzola. log ( 'Dana vrijednost -> ' + val ) ;
neka dekodira = dekodirati_utf8 ( val ) ;
konzola. log ( 'Dekodirana vrijednost -> ' + dekodirati ) ;
U ovom bloku koda:
- Isto tako, definirajte funkciju ' decode_utf8() ' koji dekodira proslijeđenu kombinaciju znakova putem ' decodeURIComponent() ” metoda.
- Bilješka: ' pobjeći() ” metoda dohvaća novi niz u kojem su različiti znakovi zamijenjeni heksadecimalnim izlaznim nizovima.
- Nakon toga odredite kombinaciju znakova koje treba dekodirati i pristupite definiranoj funkciji za odgovarajuće dekodiranje u UTF-8.
Izlaz
Ovdje se može implicirati da je kodirana vrijednost u prethodnom primjeru dekodirana na zadanu vrijednost.
Pristup 2: Kodiranje/dekodiranje UTF-8 u JavaScriptu korištenjem metoda “encodeURI()” i “decodeURI()”
' kodirajURI() ” metoda kodira URI zamjenjujući svaku instancu višestrukih znakova s određenim brojem izlaznih nizova koji predstavljaju UTF-8 kodiranje znaka. U usporedbi s ' encodeURIComponent() ”, ova posebna metoda kodira ograničene znakove.
' decodeURI() ” metoda, međutim, dekodira URI (kodiran). Ove metode mogu se implementirati u kombinaciji za kodiranje i dekodiranje kombinacije znakova u UTF-8 kodiranoj vrijednosti.
Sintaksa(encodeURI() metoda)
kodiratiURI ( x )U gornjoj sintaksi, ' x ” odgovara vrijednosti koju treba kodirati kao URI.
Povratna vrijednost
Ova metoda dohvaća kodiranu vrijednost u obliku niza.
Sintaksa(decodeURI() metoda)
decodeURI ( x )Ovdje, ' x ” predstavlja kodirani URI koji treba dekodirati.
Povratna vrijednost
Vraća dekodirani URI kao niz.
Primjer 1: Kodiranje UTF-8 u JavaScriptu
Ova demonstracija kodira proslijeđenu kombinaciju znakova u kodiranu UTF-8 vrijednost:
povratak ubjeći se ( kodiratiURI ( x ) ) ;
}
neka val = 'ovdje' ;
konzola. log ( 'Dana vrijednost -> ' + val ) ;
neka encodeVal = kodiranje_utf8 ( val ) ;
konzola. log ( 'Kodirana vrijednost -> ' + encodeVal ) ;
Ovdje se prisjetite pristupa za definiranje funkcije dodijeljene za kodiranje. Sada primijenite metodu 'encodeURI()' za predstavljanje proslijeđene kombinacije znakova kao UTF-8 kodirani niz. Nakon toga, na isti način, definirajte znakove koje treba procijeniti i pozovite definiranu funkciju prosljeđivanjem definirane vrijednosti kao svojih argumenata za izvođenje kodiranja.
Izlaz
Ovdje je vidljivo da je proslijeđena kombinacija znakova uspješno kodirana.
Primjer 2: Dekodiranje UTF-8 u JavaScriptu
Donja demonstracija koda dekodira kodiranu UTF-8 vrijednost (u prethodnom primjeru):
povratak decodeURI ( pobjeći ( x ) ) ;
}
neka val = 'à çè' ;
konzola. log ( 'Dana vrijednost -> ' + val ) ;
neka dekodira = dekodirati_utf8 ( val ) ;
konzola. log ( 'Dekodirana vrijednost -> ' + dekodirati ) ;
Prema ovom kodu, deklarirajte funkciju ' decode_utf8() ” koji sadrži navedeni parametar koji predstavlja kombinaciju znakova koji se dekodiraju pomoću “ decodeURI() ” metoda. Sada navedite vrijednost koju treba dekodirati i pozovite definiranu funkciju za primjenu dekodiranja na ' UTF-8 ” reprezentacija.
Izlaz
Ovaj ishod implicira da je prethodno kodirana vrijednost odlučena u skladu s tim.
Pristup 3: Kodiranje/dekodiranje UTF-8 u JavaScriptu pomoću regularnih izraza
Ovaj pristup primjenjuje kodiranje tako da je višebajtni unicode niz kodiran u UTF-8 više jednobajtnih znakova. Isto tako, dekodiranje se provodi tako da se kodirani niz dekodira natrag u višebajtne Unicode znakove.
Primjer 1: Kodiranje UTF-8 u JavaScriptu
Donji kod kodira višebajtni Unicode niz u UTF-8 jednobajtne znakove:
ako ( vrsta val != 'niz' ) bacanje novi TypeError ( 'Parametar' val 'nije niz' ) ;
konst niz_utf8 = val. zamijeniti (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 bajta 110yyyyy, 10zzzzzz
funkcija ( x ) {
bio je van = x. charCodeAt ( 0 ) ;
povratak Niz . fromCharCode ( 0xc0 | van >> 6 , 0x80 | van i 0x3f ) ; }
) . zamijeniti (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 bajta 1110xxxx, 10yyyyyy, 10zzzzzz
funkcija ( x ) {
bio je van = x. charCodeAt ( 0 ) ;
povratak Niz . fromCharCode ( 0xe0 | van >> 12 , 0x80 | van >> 6 i 0x3F , 0x80 | van i 0x3f ) ; }
) ;
konzola. log ( 'Kodirana vrijednost korištenjem regularnog izraza -> ' + niz_utf8 ) ;
}
kodiratiUTF8 ( 'ovdje' )
U ovom isječku koda:
- Definirajte funkciju ' kodirajUTF8() ' koji sadrži parametar koji predstavlja vrijednost koju treba kodirati kao ' UTF-8 ”.
- U svojoj definiciji primijenite provjeru na proslijeđenu vrijednost koja nije niz pomoću ' vrsta ” i vrati navedenu prilagođenu iznimku putem „ bacanje ” ključna riječ.
- Nakon toga primijenite ' charCodeAt() ' i ' fromCharCode() ” metode za dohvaćanje Unicodea prvog znaka u nizu i pretvaranje dane Unicode vrijednosti u znakove.
- Na kraju, pozovite definiranu funkciju prosljeđivanjem zadanog niza znakova za kodiranje ove vrijednosti kao ' UTF-8 ” reprezentacija.
Izlaz
Ovaj izlaz znači da je kodiranje izvršeno na odgovarajući način.
Primjer 2: Dekodiranje UTF-8 u JavaScriptu
U ovoj demonstraciji, niz znakova je dekodiran u ' UTF-8 ” reprezentacija:
ako ( vrsta val != 'niz' ) bacanje novi TypeError ( 'Parametar' val 'nije niz' ) ;
konst str = val. zamijeniti (
/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g ,
funkcija ( x ) {
bio je van = ( ( x. charCodeAt ( 0 ) i 0x0f ) << 12 ) | ( ( x. charCodeAt ( 1 ) i 0x3f ) << 6 ) | ( x. charCodeAt ( 2 ) i 0x3f ) ;
povratak Niz . fromCharCode ( van ) ; }
) . zamijeniti (
/[\u00c0-\u00df][\u0080-\u00bf]/g ,
funkcija ( x ) {
bio je van = ( x. charCodeAt ( 0 ) i 0x1f ) < '+str);
}
decodeUTF8('à çè')
U ovom kodu:
- Slično, definirajte funkciju ' dekodiranjeUTF8() ” koji ima parametar koji se odnosi na proslijeđenu vrijednost koju treba dekodirati.
- U definiciji funkcije provjerite uvjet niza proslijeđene vrijednosti putem ' vrsta ” operator.
- Sada primijenite ' charCodeAt() ” metoda za dohvaćanje Unicodea prvog, drugog i trećeg znakova u nizu.
- Također, primijenite ' String.fromCharCode() ” za pretvaranje Unicode vrijednosti u znakove.
- Isto tako, ponovno ponovite ovaj postupak kako biste dohvatili Unicode prvog i drugog znakova niza i transformirali te Unicode vrijednosti u znakove.
- Na kraju, pristupite definiranoj funkciji za vraćanje UTF-8 dekodirane vrijednosti.
Izlaz
Ovdje se može provjeriti je li dekodiranje ispravno obavljeno.
Zaključak
Kodiranje/dekodiranje u UTF-8 reprezentaciji može se izvršiti putem ' enodeURIComponent()” i ' decodeURIComponent() metode, ' kodirajURI() ' i ' decodeURI() ” ili korištenjem regularnih izraza.