UTF-8:n koodaaminen/purkaminen JavaScriptissä

Utf 8 N Koodaaminen Purkaminen Javascriptissa



UTF-8 tarkoittaa ' Unicode-muunnosmuoto 8-bittinen ” ja vastaa loistavaa koodausmuotoa, joka varmistaa, että merkit näkyvät oikein kaikilla laitteilla käytetystä kielestä/kirjoituksesta riippumatta. Tämä muoto on myös apuväline web-sivuille, ja sitä käytetään tekstitietojen tallentamiseen, käsittelyyn ja siirtämiseen Internetissä.

Tämä opetusohjelma kattaa alla mainitut sisältöalueet:







Mikä on UTF-8-koodaus?

' UTF-8-koodaus ” on toimenpide, jolla Unicode-merkkien sekvenssi muunnetaan koodatuksi merkkijonoksi, joka sisältää 8-bittisiä tavuja. Tämä koodaus voi edustaa suurta valikoimaa merkkejä verrattuna muihin merkkikoodeihin.



Kuinka UTF-8-koodaus toimii?

UTF-8:ssa merkkejä edustaessa jokaista yksittäistä koodipistettä edustaa yksi tai useampi tavu. Seuraava on ASCII-alueen koodipisteiden erittely:



  • Yksi tavu edustaa ASCII-alueen (0-127) koodipisteitä.
  • Kaksi tavua edustavat ASCII-alueen (128-2047) koodipisteitä.
  • Kolme tavua edustavat koodipisteitä ASCII-alueella (2048-65535).
  • Neljä tavua edustavat koodipisteitä ASCII-alueella (65536-1114111).

Se on sellainen, että ' UTF-8 ' sekvenssiä kutsutaan ' johtajatavu ', joka antaa tietoa sekvenssin tavujen määrästä ja merkin koodipisteen arvosta.
Yhden, kahden, kolmen ja neljän tavun sekvenssin 'johtotavu' on vastaavasti välillä (0-127), (194-233), (224-239) ja (240-247).





Muut peräkkäiset tavut ovat nimeltään ' perässä ” tavua. Kahden, kolmen ja neljän tavun sekvenssin tavut ovat kaikki alueella (128-191). Se on sellainen, että merkin koodipisteen arvo voidaan laskea analysoimalla alku- ja lopputavut.

Miten koodipisteen arvot lasketaan?

Eri tavusekvenssien koodipistearvot lasketaan seuraavasti:



  • Kaksitavuinen sekvenssi: Koodipiste vastaa '((lb – 194) * 64) + (tb – 128)'.
  • Kolmen tavun sekvenssi : Koodipiste vastaa '((lb - 224) * 4096) + ((tb1 - 128) * 64) + (tb2 - 128)'.
  • Neljän tavun sekvenssi : Koodipiste vastaa '((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)”.

Kuinka koodata / purkaa UTF-8 JavaScriptissä?

UTF-8:n koodaus ja dekoodaus JavaScriptissä voidaan suorittaa alla mainituilla tavoilla:

  • ' enodeURIComponent() ' ja ' decodeURIComponent() ”Menetelmät.
  • ' encodeURI() ' ja ' decodeURI() ”Menetelmät.
  • Säännölliset lausekkeet.

Lähestymistapa 1: UTF-8:n koodaaminen/purkaminen JavaScriptissä 'encodeURIComponent()'- ja 'decodeURIComponent()'-menetelmillä

' encodeURIComponent() ”-menetelmä koodaa URI-komponentin. Se voi myös koodata erikoismerkkejä, kuten @, &, :, +, $, # jne. decodeURIComponent() ” -menetelmä kuitenkin purkaa URI-komponentin. Näitä menetelmiä voidaan käyttää välitettyjen arvojen koodaamiseen ja dekoodaamiseen vastaavasti UTF-8:ksi.

Syntaksi ('encodeURIComponent()' -menetelmä)

encodeURIComponent ( x )

Annetussa syntaksissa ' x ” osoittaa koodattavan URI:n.

Palautusarvo
Tämä menetelmä haki koodatun URI:n merkkijonona.

Syntaksi ('decodeURIComponent()' -menetelmä)

decodeURIComponent ( x )

Täällä, ' x ” viittaa purettavaan URI:hen.

Palautusarvo
Tämä menetelmä antaa dekoodatun URI:n.

Esimerkki 1: UTF-8-koodaus JavaScriptissä
Tämä esimerkki koodaa välitetyn merkkijonon koodatuksi UTF-8-arvoksi käyttäjän määrittämän funktion avulla:

toiminto encode_utf8 ( x ) {
palata paeta ( encodeURIComponent ( x ) ) ;
}
anna val = 'tässä' ;
konsoli. Hirsi ( 'Tietytty arvo ->' + val ) ;
anna koodataVal = encode_utf8 ( val ) ;
konsoli. Hirsi ( 'Koodattu arvo ->' + encodeVal ) ;

Suorita näillä koodiriveillä alla annetut vaiheet:

  • Määritä ensin funktio ' encode_utf8() ', joka koodaa määritetyn parametrin edustaman välitetyn merkkijonon.
  • Tämän koodauksen suorittaa ' encodeURIComponent() ” -menetelmä funktion määrittelyssä.
  • Huomautus: ' unescape () ” -menetelmä korvaa minkä tahansa pakosarjan sen edustamalla merkillä.
  • Tämän jälkeen alusta koodattava arvo ja näytä se.
  • Kutsu nyt määritetty funktio ja välitä määritetty merkkiyhdistelmä sen argumentteina koodataksesi tämän arvon UTF-8:aan.

Lähtö

Tässä voidaan viitata siihen, että yksittäiset merkit esitetään ja koodataan UTF-8:ssa vastaavasti.

Esimerkki 2: UTF-8:n purku JavaScriptissä
Alla oleva koodiesittely purkaa välitetyn arvon (merkkien muodossa) koodatuksi UTF-8-esitykseen:

toiminto decode_utf8 ( x ) {
palata decodeURIComponent ( paeta ( x ) ) ;
}
anna val = 'çè' ;
konsoli. Hirsi ( 'Tietytty arvo ->' + val ) ;
anna dekoodata = decode_utf8 ( val ) ;
konsoli. Hirsi ( 'Dekoodattu arvo ->' + purkaa ) ;

Tässä koodilohkossa:

  • Samoin määritä funktio ' decode_utf8() ', joka purkaa välitetyn merkkiyhdistelmän ' decodeURIComponent() ”menetelmä.
  • Huomautus: ' paeta() ” -menetelmä hakee uuden merkkijonon, jossa eri merkit korvataan heksadesimaalikoodeilla.
  • Määritä sen jälkeen dekoodattava merkkiyhdistelmä ja käytä määritettyä toimintoa suorittaaksesi UTF-8-koodauksen asianmukaisesti.

Lähtö

Tässä voidaan viitata siihen, että edellisen esimerkin koodattu arvo dekoodataan oletusarvoksi.

Lähestymistapa 2: UTF-8:n koodaaminen/purku JavaScriptissä käyttämällä 'encodeURI()'- ja 'decodeURI()'-menetelmiä

' encodeURI() ” -menetelmä koodaa URI:n korvaamalla jokaisen useiden merkkien esiintymän useilla erotussarjoilla, jotka edustavat merkin UTF-8-koodausta. Verrattuna ' encodeURIComponent() ” -menetelmällä, tämä menetelmä koodaa rajoitetut merkit.

' decodeURI() ' -menetelmä kuitenkin purkaa URI:n (koodattu). Nämä menetelmät voidaan toteuttaa yhdessä UTF-8-koodatun arvon merkkiyhdistelmän koodaamiseksi ja dekoodaamiseksi.

Syntaksi(encodeURI()-menetelmä)

encodeURI ( x )

Yllä olevassa syntaksissa ' x ” vastaa URI:ksi koodattavaa arvoa.

Palautusarvo
Tämä menetelmä hakee koodatun arvon merkkijonon muodossa.

Syntaksi(decodeURI()-menetelmä)

decodeURI ( x )

Täällä, ' x ” edustaa dekoodattavaa koodattua URI:tä.

Palautusarvo
Se palauttaa dekoodatun URI:n merkkijonona.

Esimerkki 1: UTF-8-koodaus JavaScriptissä
Tämä esittely koodaa välitetyn merkkiyhdistelmän koodatuksi UTF-8-arvoksi:

toiminto encode_utf8 ( x ) {
palata paeta ( encodeURI ( x ) ) ;
}
anna val = 'tässä' ;
konsoli. Hirsi ( 'Tietytty arvo ->' + val ) ;
anna koodataVal = encode_utf8 ( val ) ;
konsoli. Hirsi ( 'Koodattu arvo ->' + encodeVal ) ;

Muista tässä lähestymistavat koodaukseen varatun funktion määrittämiseen. Käytä nyt 'encodeURI()'-menetelmää edustamaan välitettyä merkkiyhdistelmää UTF-8-koodattuna merkkijonona. Tämän jälkeen määritä myös arvioitavat merkit ja kutsu määritetty funktio välittämällä määritetty arvo sen argumenteiksi koodauksen suorittamiseksi.

Lähtö

Tässä on ilmeistä, että hyväksytty merkkiyhdistelmä on koodattu onnistuneesti.

Esimerkki 2: UTF-8:n purku JavaScriptissä
Alla oleva koodiesittely purkaa koodatun UTF-8-arvon (edellisessä esimerkissä):

toiminto decode_utf8 ( x ) {
palata decodeURI ( paeta ( x ) ) ;
}
anna val = 'çè' ;
konsoli. Hirsi ( 'Tietytty arvo ->' + val ) ;
anna dekoodata = decode_utf8 ( val ) ;
konsoli. Hirsi ( 'Dekoodattu arvo -> ' + purkaa ) ;

Ilmoita tämän koodin mukaan funktio ' decode_utf8() ', joka sisältää ilmoitetun parametrin, joka edustaa merkkiyhdistelmää, joka puretaan käyttämällä ' decodeURI() ”menetelmä. Määritä nyt dekoodattava arvo ja käynnistä määritetty toiminto soveltaaksesi dekoodausta ' UTF-8 ” edustus.

Lähtö

Tämä tulos tarkoittaa, että aiemmin koodattu arvo päätetään vastaavasti.

Lähestymistapa 3: Koodaa/purkaa UTF-8 JavaScriptissä käyttämällä säännöllisiä lausekkeita

Tämä lähestymistapa soveltaa koodausta siten, että monitavuinen unicode-merkkijono koodataan UTF-8:n useilla yksitavuisilla merkeillä. Samoin dekoodaus suoritetaan siten, että koodattu merkkijono dekoodataan takaisin monitavuisiksi Unicode-merkeiksi.

Esimerkki 1: UTF-8-koodaus JavaScriptissä
Alla oleva koodi koodaa monitavuisen unicode-merkkijonon yksitavuisiksi UTF-8-merkeiksi:

toiminto koodausUTF8 ( val ) {
jos ( tyyppi val != 'merkkijono' ) heittää Uusi Tyyppivirhe ( 'Parametri' val 'ei ole merkkijono' ) ;
konst merkkijono_utf8 = val. korvata (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 tavua 110yyyyy, 10zzzzzz
toiminto ( x ) {
oli ulos = x. charCodeAt ( 0 ) ;
palata merkkijono . CharCodesta ( 0xc0 | ulos >> 6 , 0x80 | ulos & 0x3f ) ; }
) . korvata (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 tavua 1110xxxx, 10yyyyyy, 10zzzzzz
toiminto ( x ) {
oli ulos = x. charCodeAt ( 0 ) ;
palata merkkijono . CharCodesta ( 0xe0 | ulos >> 12 , 0x80 | ulos >> 6 & 0x3F , 0x80 | ulos & 0x3f ) ; }
) ;
konsoli. Hirsi ( 'Koodattu arvo käyttäen säännöllistä lauseketta ->' + merkkijono_utf8 ) ;
}
koodausUTF8 ( 'tässä' )

Tässä koodinpätkässä:

  • Määritä funktio ' encodeUTF8() ', joka sisältää parametrin, joka edustaa arvoa, joka koodataan ' UTF-8 ”.
  • Käytä sen määritelmässä tarkistusta hyväksyttyyn arvoon, joka ei ole merkkijono käyttämällä ' tyyppi ' -operaattori ja palauta määritetty mukautettu poikkeus '' heittää ”avainsana.
  • Käytä sen jälkeen ' charCodeAt() ' ja ' fromCharCode() ” menetelmät noutaaksesi merkkijonon ensimmäisen merkin Unicoden ja muuntaaksesi annetun Unicode-arvon merkeiksi.
  • Lopuksi kutsu määritetty funktio välittämällä annettu merkkijono koodataksesi tämän arvon ' UTF-8 ” edustus.

Lähtö

Tämä tulos tarkoittaa, että koodaus on suoritettu asianmukaisesti.

Esimerkki 2: UTF-8:n purku JavaScriptissä
Tässä esittelyssä merkkijono dekoodataan muotoon ' UTF-8 'esitys:

toiminto dekoodaaUTF8 ( val ) {
jos ( tyyppi val != 'merkkijono' ) heittää Uusi Tyyppivirhe ( 'Parametri' val 'ei ole merkkijono' ) ;
konst str = val. korvata (
/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g ,
toiminto ( x ) {
oli ulos = ( ( x. charCodeAt ( 0 ) & 0x0f ) << 12 ) | ( ( x. charCodeAt ( 1 ) & 0x3f ) << 6 ) | ( x. charCodeAt ( 2 ) & 0x3f ) ;
palata merkkijono . CharCodesta ( ulos ) ; }
) . korvata (
/[\u00c0-\u00df][\u0080-\u00bf]/g ,
toiminto ( x ) {
oli ulos = ( x. charCodeAt ( 0 ) & 0x1f ) < '+str);
}
decodeUTF8('à çè')

Tässä koodissa:

  • Samoin määritä funktio ' dekoodaaUTF8() ', jolla on parametri, joka viittaa dekoodattavaan välitettyyn arvoon.
  • Tarkista funktion määrittelystä välitetyn arvon merkkijonoehto ' tyyppi ”operaattori.
  • Käytä nyt ' charCodeAt() ” -menetelmää ensimmäisen, toisen ja kolmannen merkkijonon Unicode-koodin hakemiseksi.
  • Käytä myös ' String.fromCharCode() ” -menetelmää Unicode-arvojen muuntamiseksi merkeiksi.
  • Samoin toista tämä toimenpide uudelleen hakeaksesi ensimmäisen ja toisen merkkijonon Unicode-koodin ja muuntaaksesi nämä unicode-arvot merkeiksi.
  • Siirry lopuksi määritettyyn funktioon palauttaaksesi UTF-8-dekoodatun arvon.

Lähtö

Täällä voidaan varmistaa, että dekoodaus on tehty oikein.

Johtopäätös

Koodaus/dekoodaus UTF-8-muodossa voidaan suorittaa ' enodeURIComponent()' ja ' decodeURIComponent() menetelmät, ' encodeURI() ' ja ' decodeURI() ” -menetelmiä tai käyttämällä säännöllisiä lausekkeita.