Como codificar/decodificar UTF-8 em JavaScript

Como Codificar Decodificar Utf 8 Em Javascript



UTF-8 significa “ Formato de transformação Unicode de 8 bits ”E corresponde a um excelente formato de codificação que garante que os caracteres sejam exibidos adequadamente em todos os dispositivos, independentemente do idioma/script utilizado. Além disso, esse formato auxilia páginas da web e é utilizado para armazenamento, processamento e transmissão de dados de texto na internet.

Este tutorial cobre as áreas de conteúdo indicadas abaixo:







O que é codificação UTF-8?

Codificação UTF-8 ”É o procedimento de transformar a sequência de caracteres Unicode em uma string codificada composta por bytes de 8 bits. Esta codificação pode representar uma grande variedade de caracteres em comparação com outras codificações de caracteres.



Como funciona a codificação UTF-8?

Ao representar caracteres em UTF-8, cada ponto de código individual é representado por um ou mais bytes. A seguir está o detalhamento dos pontos de código no intervalo ASCII:



  • Um único byte representa os pontos de código no intervalo ASCII (0-127).
  • Dois bytes representam os pontos de código no intervalo ASCII (128-2047).
  • Três bytes representam os pontos de código no intervalo ASCII (2048-65535).
  • Quatro bytes representam os pontos de código no intervalo ASCII (65536-1114111).

É tal que o primeiro byte de um “ UTF-8 ”A sequência é chamada de“ byte líder ”que fornece informações sobre o número de bytes na sequência e o valor do ponto de código do caractere.
O “byte líder” para uma sequência de um, dois, três e quatro bytes está no intervalo (0-127), (194-233), (224-239) e (240-247), respectivamente.





O resto dos bytes em sequência são chamados de “ Seguindo ” bytes. Os bytes para uma sequência de dois, três e quatro bytes estão todos no intervalo (128-191). É tal que o valor do ponto de código do caractere pode ser calculado analisando os bytes iniciais e finais.

Como os valores dos pontos de código são calculados?

Os valores de pontos de código para diferentes sequências de bytes são calculados da seguinte forma:



  • Sequência de dois bytes: O ponto de código é equivalente a “((lb – 194) * 64) + (tb – 128)”.
  • Sequência de três bytes : O ponto de código é equivalente a “((lb – 224) * 4096) + ((tb1 – 128) * 64) + (tb2 – 128)”.
  • Sequência de quatro bytes : O ponto de código é equivalente a “((lb – 240) * 262144) + ((tb1 – 128) * 4096) + ((tb2 – 128) * 64) + (tb3 – 128)”.

Como codificar/decodificar UTF-8 em JavaScript?

A codificação e decodificação de UTF-8 em JavaScript pode ser realizada por meio das abordagens indicadas abaixo:

  • enodeURIComponent() ' e ' decodificarURIComponent() ' Métodos.
  • codificarURI() ' e ' decodificarURI() ' Métodos.
  • Expressões regulares.

Abordagem 1: codificar/decodificar UTF-8 em JavaScript usando os métodos “encodeURIComponent()” e “decodeURIComponent()”

O ' codificarURIComponent() ”O método codifica um componente URI. Além disso, pode codificar caracteres especiais como @, &,:, +, $, #, etc. decodificarURIComponent() ”O método, entretanto, decodifica um componente URI. Esses métodos podem ser utilizados para codificar e decodificar os valores passados ​​para UTF-8, respectivamente.

Sintaxe(Método “encodeURIComponent()”)

codificarURIComponent ( x )

Na sintaxe fornecida, “ x ”indica o URI a ser codificado.

Valor de retorno
Este método recuperou um URI codificado como uma string.

Sintaxe(Método “decodeURIComponent()”)

decodificarURIComponent ( x )

Aqui, ' x ”refere-se ao URI a ser decodificado.

Valor de retorno
Este método fornece o URI decodificado.

Exemplo 1: Codificando UTF-8 em JavaScript
Este exemplo codifica a string passada para um valor UTF-8 codificado com a ajuda de uma função definida pelo usuário:

função codificar_utf8 ( x ) {
retornar escapar ( codificarURIComponent ( x ) ) ;
}
deixe val = 'aqui' ;
console. registro ( 'Valor dado ->' + valor ) ;
deixe codificarVal = codificar_utf8 ( valor ) ;
console. registro ( 'Valor codificado ->' + codificarVal ) ;

Nessas linhas de código, execute as etapas abaixo:

  • Em primeiro lugar, defina a função “ codificar_utf8() ” que codifica a string passada representada pelo parâmetro especificado.
  • Essa codificação é feita pelo “ codificarURIComponent() ”Método na definição da função.
  • Observação: O ' remover escape() ”O método substitui qualquer sequência de escape pelo caractere representado por ela.
  • Depois disso, inicialize o valor a ser codificado e exiba-o.
  • Agora, invoque a função definida e passe a combinação definida de caracteres como seus argumentos para codificar esse valor para UTF-8.

Saída

Aqui, pode-se entender que os caracteres individuais são representados e codificados em UTF-8 de acordo.

Exemplo 2: Decodificando UTF-8 em JavaScript
A demonstração de código abaixo decodifica o valor passado (na forma de caracteres) para uma representação UTF-8 codificada:

função decodificar_utf8 ( x ) {
retornar decodificarURIComponent ( escapar ( x ) ) ;
}
deixe val = 'çè' ;
console. registro ( 'Valor dado ->' + valor ) ;
deixe decodificar = decodificar_utf8 ( valor ) ;
console. registro ( 'Valor decodificado ->' + decodificar ) ;

Neste bloco de código:

  • Da mesma forma, defina a função “ decodificar_utf8() ”que decodifica a combinação de caracteres passada por meio do“ decodificarURIComponent() ”Método.
  • Observação: O ' escapar() ”O método recupera uma nova string na qual vários caracteres são substituídos por sequências de escape hexadecimais.
  • Em seguida, especifique a combinação de caracteres a serem decodificados e acesse a função definida para realizar a decodificação para UTF-8 adequadamente.

Saída

Aqui, pode ficar implícito que o valor codificado no exemplo anterior é decodificado para o valor padrão.

Abordagem 2: Codificar/Decodificar UTF-8 em JavaScript usando os métodos “encodeURI()” e “decodeURI()”

O ' codificarURI() ”O método codifica um URI substituindo cada instância de vários caracteres por uma série de sequências de escape que representam a codificação UTF-8 do caractere. Em comparação com o “ codificarURIComponent() ”Método, este método específico codifica caracteres limitados.

O ' decodificarURI() ”O método, entretanto, decodifica o URI (codificado). Esses métodos podem ser implementados em combinação para codificar e decodificar a combinação de caracteres em um valor codificado em UTF-8.

Sintaxe (método encodeURI())

codificarURI ( x )

Na sintaxe acima, “ x ”corresponde ao valor a ser codificado como um URI.

Valor de retorno
Este método recupera o valor codificado na forma de uma string.

Sintaxe (método decodeURI())

decodificarURI ( x )

Aqui, ' x ”representa o URI codificado a ser decodificado.

Valor de retorno
Ele retorna o URI decodificado como uma string.

Exemplo 1: Codificando UTF-8 em JavaScript
Esta demonstração codifica a combinação de caracteres passada para um valor UTF-8 codificado:

função codificar_utf8 ( x ) {
retornar escapar ( codificarURI ( x ) ) ;
}
deixe val = 'aqui' ;
console. registro ( 'Valor dado ->' + valor ) ;
deixe codificarVal = codificar_utf8 ( valor ) ;
console. registro ( 'Valor codificado ->' + codificarVal ) ;

Aqui, lembre-se das abordagens para definir uma função alocada para codificação. Agora, aplique o método “encodeURI()” para representar a combinação de caracteres passada como uma string codificada em UTF-8. Depois disso, da mesma forma, defina os caracteres a serem avaliados e invoque a função definida passando o valor definido como seus argumentos para realizar a codificação.

Saída

Aqui, é evidente que a combinação de caracteres passada foi codificada com sucesso.

Exemplo 2: Decodificando UTF-8 em JavaScript
A demonstração de código abaixo decodifica o valor UTF-8 codificado (no exemplo anterior):

função decodificar_utf8 ( x ) {
retornar decodificarURI ( escapar ( x ) ) ;
}
deixe val = 'çè' ;
console. registro ( 'Valor dado ->' + valor ) ;
deixe decodificar = decodificar_utf8 ( valor ) ;
console. registro ( 'Valor decodificado ->' + decodificar ) ;

De acordo com este código, declare a função “ decodificar_utf8() ”que compreende o parâmetro indicado que representa a combinação de caracteres a serem decodificados usando o“ decodificarURI() ”Método. Agora, especifique o valor a ser decodificado e invoque a função definida para aplicar a decodificação ao “ UTF-8 ”representação.

Saída

Este resultado implica que o valor codificado anteriormente seja decidido de acordo.

Abordagem 3: codificar/decodificar UTF-8 em JavaScript usando expressões regulares

Essa abordagem aplica a codificação de forma que a string unicode multibyte seja codificada em UTF-8 com vários caracteres de byte único. Da mesma forma, a decodificação é realizada de forma que a sequência codificada seja decodificada de volta para caracteres Unicode multibyte.

Exemplo 1: Codificando UTF-8 em JavaScript
O código abaixo codifica a string Unicode multibyte para caracteres UTF-8 de byte único:

função codificarUTF8 ( valor ) {
se ( tipo de valor != 'corda' ) lançar novo Erro de tipo ( 'O Parâmetro' valor 'não é uma string' ) ;
const string_utf8 = val. substituir (
/[\u0080-\u07ff]/g , // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
função ( x ) {
era fora = x. charCodeAt ( 0 ) ;
retornar Corda . fromCharCode ( 0xc0 | fora >> 6 , 0x80 | fora & 0x3f ) ; }
) . substituir (
/[\u0800-\uffff]/g , // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
função ( x ) {
era fora = x. charCodeAt ( 0 ) ;
retornar Corda . fromCharCode ( 0xe0 | fora >> 12 , 0x80 | fora >> 6 & 0x3F , 0x80 | fora & 0x3f ) ; }
) ;
console. registro ( 'Valor codificado usando expressão regular ->' + string_utf8 ) ;
}
codificarUTF8 ( 'aqui' )

Neste trecho de código:

  • Defina a função “ codificarUTF8() ”compreendendo o parâmetro que representa o valor a ser codificado como“ UTF-8 ”.
  • Em sua definição, aplique uma verificação no valor passado que não é a string usando o “ tipo de ”E retorne a exceção personalizada especificada por meio do“ lançar ”palavra-chave.
  • Depois disso, aplique o “ charCodeAt() ' e ' fromCharCode() ”Métodos para recuperar o Unicode do primeiro caractere na string e transformar o valor Unicode fornecido em caracteres, respectivamente.
  • Finalmente, invoque a função definida passando a sequência de caracteres fornecida para codificar este valor como “ UTF-8 ”representação.

Saída

Esta saída significa que a codificação foi realizada de forma adequada.

Exemplo 2: Decodificando UTF-8 em JavaScript
Nesta demonstração, a sequência de caracteres é decodificada para “ UTF-8 ”representação:

função decodificarUTF8 ( valor ) {
se ( tipo de valor != 'corda' ) lançar novo Erro de tipo ( 'O Parâmetro' valor 'não é uma string' ) ;
const str = val. substituir (
/[\u00e0-\u00ef][\u0080-\u00f][\u0080-\u00f]/g ,
função ( x ) {
era fora = ( ( x. charCodeAt ( 0 ) & 0x0f ) << 12 ) | ( ( x. charCodeAt ( 1 ) & 0x3f ) << 6 ) | ( x. charCodeAt ( 2 ) & 0x3f ) ;
retornar Corda . fromCharCode ( fora ) ; }
) . substituir (
/[\u00c0-\u00df][\u0080-\u00f]/g ,
função ( x ) {
era fora = ( x. charCodeAt ( 0 ) & 0x1f ) < '+str);
}
decodificarUTF8('à çè')

Neste código:

  • Da mesma forma, defina a função “ decodificarUTF8() ” tendo o parâmetro que se refere ao valor passado a ser decodificado.
  • Na definição da função, verifique a condição da string do valor passado por meio do “ tipo de ”operador.
  • Agora, aplique o “ charCodeAt() ”Método para recuperar o Unicode dos caracteres da primeira, segunda e terceira string, respectivamente.
  • Além disso, aplique o “ String.fromCharCode() ”Método para transformar os valores Unicode em caracteres.
  • Da mesma forma, repita este procedimento novamente para buscar o Unicode do primeiro e do segundo caracteres da string e transformar esses valores Unicode em caracteres.
  • Por último, acesse a função definida para retornar o valor decodificado em UTF-8.

Saída

Aqui pode-se verificar que a decodificação foi feita corretamente.

Conclusão

A codificação/decodificação na representação UTF-8 pode ser realizada através do “ enodeURIComponent()” e ' decodificarURIComponent() métodos, o “ codificarURI() ' e ' decodificarURI() ”Métodos ou usando as Expressões Regulares.