Come codificare/decodificare UTF-8 in JavaScript

Come Codificare Decodificare Utf 8 In Javascript



UTF-8 sta per ' Formato di trasformazione Unicode a 8 bit ' e corrisponde a un ottimo formato di codifica che garantisce che i caratteri vengano visualizzati correttamente su tutti i dispositivi indipendentemente dalla lingua/scrittura utilizzata. Inoltre, questo formato è di supporto per le pagine Web e viene utilizzato per l'archiviazione, l'elaborazione e la trasmissione di dati di testo su Internet.

Questo tutorial copre le aree di contenuto indicate di seguito:







Cos'è la codifica UTF-8?

Codifica UTF-8 ” è la procedura di trasformazione della sequenza di caratteri Unicode in una stringa codificata comprendente byte da 8 bit. Questa codifica può rappresentare una vasta gamma di caratteri rispetto alle altre codifiche di caratteri.



Come funziona la codifica UTF-8?

Pur rappresentando i caratteri in UTF-8, ogni singolo punto di codice è rappresentato da uno o più byte. Di seguito è riportata la suddivisione dei punti di codice nell'intervallo ASCII:



  • Un singolo byte rappresenta i punti di codice nell'intervallo ASCII (0-127).
  • Due byte rappresentano i punti di codice nell'intervallo ASCII (128-2047).
  • Tre byte rappresentano i punti di codice nell'intervallo ASCII (2048-65535).
  • Quattro byte rappresentano i punti di codice nell'intervallo ASCII (65536-1114111).

È tale che il primo byte di un “ UTF-8 La sequenza viene definita ' byte leader ' che fornisce informazioni sul numero di byte nella sequenza e sul valore del punto di codice del carattere.
Il 'byte leader' per una sequenza di byte singolo, due, tre e quattro è compreso rispettivamente nell'intervallo (0-127), (194-233), (224-239) e (240-247).





Il resto dei byte in sequenza sono chiamati ' trascinamento ' byte. I byte per una sequenza di due, tre e quattro byte rientrano tutti nell'intervallo (128-191). È tale che il valore del punto di codice del carattere può essere calcolato analizzando i byte iniziali e finali.

Come vengono calcolati i valori dei punti codice?

I valori del punto di codice per le diverse sequenze di byte vengono calcolati come segue:



  • Sequenza di due byte: Il punto di codice è equivalente a “((lb – 194) * 64) + (tb – 128)”.
  • Sequenza di tre byte : Il punto di codice è equivalente a “((lb – 224) * 4096) + ((tb1 – 128) * 64) + (tb2 – 128)”.
  • Sequenza di quattro byte : Il punto di codice è equivalente a “((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)”.

Come codificare/decodificare UTF-8 in JavaScript?

La codifica e decodifica di UTF-8 in JavaScript può essere eseguita tramite gli approcci indicati di seguito:

  • enodeURIComponent() ' E ' decodificaURIComponent() “Metodi.
  • codificaURI() ' E ' decodificaURI() “Metodi.
  • Espressioni regolari.

Approccio 1: codificare/decodificare UTF-8 in JavaScript utilizzando i metodi 'encodeURIComponent()' e 'decodeURIComponent()'

IL ' codificaURIComponente() Il metodo 'codifica un componente URI. Inoltre, può codificare caratteri speciali come @, &,:, +, $, #, ecc. Il ' decodificaURIComponent() ', tuttavia, decodifica un componente URI. Questi metodi possono essere utilizzati rispettivamente per codificare e decodificare i valori passati in UTF-8.

Sintassi(metodo “encodeURIComponent()”)

codificaURIComponent ( X )

Nella sintassi data, “ X ' indica l'URI da codificare.

Valore di ritorno
Questo metodo recupera un URI codificato come stringa.

Sintassi(metodo “decodeURIComponent()”)

decodificaURIComponent ( X )

Qui, ' X ' si riferisce all'URI da decodificare.

Valore di ritorno
Questo metodo fornisce l'URI decodificato.

Esempio 1: codifica UTF-8 in JavaScript
Questo esempio codifica la stringa passata in un valore UTF-8 codificato con l'aiuto di una funzione definita dall'utente:

funzione codifica_utf8 ( X ) {
ritorno senza fuga ( codificaURIComponent ( X ) ) ;
}
lascia val = 'Qui' ;
consolle. tronco d'albero ( 'Valore dato -> ' + val ) ;
lascia che encodeVal = codifica_utf8 ( val ) ;
consolle. tronco d'albero ( 'Valore codificato -> ' + codificaVal ) ;

In queste righe di codice, eseguire i passaggi indicati di seguito:

  • Innanzitutto, definisci la funzione “ codifica_utf8() ' che codifica la stringa passata rappresentata dal parametro specificato.
  • Questa codifica viene eseguita dal ' codificaURIComponente() ' nella definizione della funzione.
  • Nota: IL ' senza fuga() ” sostituisce qualsiasi sequenza di escape con il carattere da essa rappresentato.
  • Successivamente inizializzare il valore da codificare e visualizzarlo.
  • Ora richiama la funzione definita e passa la combinazione definita di caratteri come argomenti per codificare questo valore in UTF-8.

Produzione

In questo caso si può dedurre che i singoli caratteri vengono rappresentati e codificati di conseguenza in UTF-8.

Esempio 2: decodifica UTF-8 in JavaScript
La dimostrazione del codice seguente decodifica il valore passato (sotto forma di caratteri) in una rappresentazione UTF-8 codificata:

funzione decodifica_utf8 ( X ) {
ritorno decodificaURIComponent ( fuga ( X ) ) ;
}
lascia val = 'à çè' ;
consolle. tronco d'albero ( 'Valore dato -> ' + val ) ;
lasciamo decodificare = decodifica_utf8 ( val ) ;
consolle. tronco d'albero ( 'Valore decodificato -> ' + decodificare ) ;

In questo blocco di codice:

  • Allo stesso modo, definire la funzione “ decodifica_utf8() ” che decodifica la combinazione di caratteri passata tramite il comando “ decodificaURIComponent() ' metodo.
  • Nota: IL ' fuga() ” recupera una nuova stringa in cui vari caratteri vengono sostituiti da sequenze di escape esadecimali.
  • Successivamente, specificare la combinazione di caratteri da decodificare e accedere alla funzione definita per eseguire opportunamente la decodifica in UTF-8.

Produzione

In questo caso si può dedurre che il valore codificato nell'esempio precedente venga decodificato nel valore predefinito.

Approccio 2: codificare/decodificare UTF-8 in JavaScript utilizzando i metodi 'encodeURI()' e 'decodeURI()'

IL ' codificaURI() ' codifica un URI sostituendo ciascuna istanza di più caratteri con un numero di sequenze di escape che rappresentano la codifica UTF-8 del carattere. Rispetto al “ codificaURIComponente() ', questo particolare metodo codifica caratteri limitati.

IL ' decodificaURI() ', tuttavia, decodifica l'URI (codificato). Questi metodi possono essere implementati in combinazione per codificare e decodificare la combinazione di caratteri in un valore codificato UTF-8.

Sintassi (metodo encodeURI())

codificaURI ( X )

Nella sintassi precedente, ' X ” corrisponde al valore da codificare come URI.

Valore di ritorno
Questo metodo recupera il valore codificato sotto forma di stringa.

Sintassi (metodo decodeURI())

decodificareURI ( X )

Qui, ' X ' rappresenta l'URI codificato da decodificare.

Valore di ritorno
Restituisce l'URI decodificato come una stringa.

Esempio 1: codifica UTF-8 in JavaScript
Questa dimostrazione codifica la combinazione di caratteri passata in un valore UTF-8 codificato:

funzione codifica_utf8 ( X ) {
ritorno senza fuga ( codificaURI ( X ) ) ;
}
lascia val = 'Qui' ;
consolle. tronco d'albero ( 'Valore dato -> ' + val ) ;
lascia che encodeVal = codifica_utf8 ( val ) ;
consolle. tronco d'albero ( 'Valore codificato -> ' + codificaVal ) ;

Qui, ricordiamo gli approcci per definire una funzione assegnata alla codifica. Ora applica il metodo 'encodeURI()' per rappresentare la combinazione di caratteri passata come una stringa codificata UTF-8. Successivamente, allo stesso modo, definisci i caratteri da valutare e invoca la funzione definita passando il valore definito come argomenti per eseguire la codifica.

Produzione

Qui è evidente che la combinazione di caratteri passata è stata codificata con successo.

Esempio 2: decodifica UTF-8 in JavaScript
La dimostrazione del codice seguente decodifica il valore UTF-8 codificato (nell'esempio precedente):

funzione decodifica_utf8 ( X ) {
ritorno decodificareURI ( fuga ( X ) ) ;
}
lascia val = 'à çè' ;
consolle. tronco d'albero ( 'Valore dato -> ' + val ) ;
lasciamo decodificare = decodifica_utf8 ( val ) ;
consolle. tronco d'albero ( 'Valore decodificato -> ' + decodificare ) ;

Secondo questo codice, dichiara la funzione “ decodifica_utf8() ' che comprende il parametro indicato che rappresenta la combinazione di caratteri da decodificare utilizzando il ' decodificaURI() ' metodo. Ora, specifica il valore da decodificare e richiama la funzione definita per applicare la decodifica al ' UTF-8 ”rappresentazione.

Produzione

Questo risultato implica che il valore codificato in precedenza venga deciso di conseguenza.

Approccio 3: codifica/decodifica UTF-8 in JavaScript utilizzando le espressioni regolari

Questo approccio applica la codifica in modo tale che la stringa Unicode multibyte sia codificata in più caratteri a byte singolo UTF-8. Allo stesso modo, la decodifica viene eseguita in modo tale che la stringa codificata venga decodificata nuovamente in caratteri Unicode multibyte.

Esempio 1: codifica UTF-8 in JavaScript
Il codice seguente codifica la stringa Unicode multibyte in caratteri UTF-8 a byte singolo:

funzione codificaUTF8 ( val ) {
Se ( tipo di val != 'corda' ) gettare nuovo TypeError ( 'Il parametro' val 'non è una stringa' ) ;
cost string_utf8 = val. sostituire (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 byte 110yyyyy, 10zzzzzz
funzione ( X ) {
era fuori = X. charCodeAt ( 0 ) ;
ritorno Corda . daCharCode ( 0xc0 | fuori >> 6 , 0x80 | fuori & 0x3f ) ; }
) . sostituire (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 byte 1110xxxx, 10yyyyyy, 10zzzzzz
funzione ( X ) {
era fuori = X. charCodeAt ( 0 ) ;
ritorno Corda . daCharCode ( 0xe0 | fuori >> 12 , 0x80 | fuori >> 6 & 0x3F , 0x80 | fuori & 0x3f ) ; }
) ;
consolle. tronco d'albero ( 'Valore codificato utilizzando l'espressione regolare -> ' + string_utf8 ) ;
}
codificaUTF8 ( 'Qui' )

In questo frammento di codice:

  • Definire la funzione “ codificaUTF8() ” composto dal parametro che rappresenta il valore da codificare come “ UTF-8 ”.
  • Nella sua definizione, applica un controllo sul valore passato che non è la stringa utilizzando il ' tipo di ' e restituire l'eccezione personalizzata specificata tramite l'operatore ' gettare ' parola chiave.
  • Successivamente, applicare il ' charCodeAt() ' E ' daCodiceCar() ' metodi per recuperare l'Unicode del primo carattere nella stringa e trasformare rispettivamente il valore Unicode specificato in caratteri.
  • Infine, richiama la funzione definita passando la sequenza di caratteri data per codificare questo valore come ' UTF-8 ”rappresentazione.

Produzione

Questo output indica che la codifica viene eseguita in modo appropriato.

Esempio 2: decodifica UTF-8 in JavaScript
In questa dimostrazione, la sequenza di caratteri viene decodificata in ' UTF-8 ” rappresentazione:

funzione decodificareUTF8 ( val ) {
Se ( tipo di val != 'corda' ) gettare nuovo TypeError ( 'Il parametro' val 'non è una stringa' ) ;
cost stra = val. sostituire (
/[\u00e0-\u00ef][\u0080-\u00f][\u0080-\u00f]/g ,
funzione ( X ) {
era fuori = ( ( X. charCodeAt ( 0 ) & 0x0f ) << 12 ) | ( ( X. charCodeAt ( 1 ) & 0x3f ) << 6 ) | ( X. charCodeAt ( 2 ) & 0x3f ) ;
ritorno Corda . daCharCode ( fuori ) ; }
) . sostituire (
/[\u00c0-\u00df][\u0080-\u00f]/g ,
funzione ( X ) {
era fuori = ( X. charCodeAt ( 0 ) & 0x1f ) < '+str);
}
decodificaUTF8('à çè')

In questo codice:

  • Allo stesso modo, definire la funzione “ decodificaUTF8() ” avente il parametro che fa riferimento al valore passato da decodificare.
  • Nella definizione della funzione, controlla la condizione della stringa del valore passato tramite il pulsante “ tipo di 'operatore.
  • Ora applica il ' charCodeAt() ' per recuperare rispettivamente l'Unicode del primo, del secondo e del terzo carattere della stringa.
  • Inoltre, applicare il ' String.fromCharCode() ' metodo per trasformare i valori Unicode in caratteri.
  • Allo stesso modo, ripetere nuovamente questa procedura per recuperare l'Unicode del primo e del secondo carattere della stringa e trasformare questi valori Unicode in caratteri.
  • Infine, accedi alla funzione definita per restituire il valore decodificato UTF-8.

Produzione

Qui si può verificare che la decodifica sia avvenuta correttamente.

Conclusione

La codifica/decodifica in rappresentazione UTF-8 può essere effettuata tramite il comando “ enodeURIComponent()” E ' decodificaURIComponent() metodi, il “ codificaURI() ' E ' decodificaURI() ' o utilizzando le espressioni regolari.