HOWTO · JavaScript

Codificação de URL em JavaScript

Neste artigo, vamos ver como codificar uma URL usando vários métodos de codificação predefinidos em JavaScript.

Nesta página

Uma codificação de URL é um processo de codificação de caracteres de 8 bits dentro do URL com% seguido por um caractere hexadecimal. Também é conhecido como codificação de porcentagem, pois estamos substituindo os caracteres por um sinal de porcentagem. Uma codificação de URL pode ser feita usando quase qualquer linguagem de programação, incluindo JavaScript.

A razão por trás da codificação de um URL é que um URL pode conter apenas caracteres específicos da tabela ASCII. Todos os outros caracteres presentes no URL precisam ser codificados para que o URL funcione corretamente. Os caracteres que precisam de codificação em um URL são ':', '/', '?', '#', '[', ']', '@', '!', '$', '&', "'", '(', ')', '*', '+', ',', ';', '=', Bem como '%'. Para obter mais informações sobre esses caracteres e sua forma de codificação, você pode visitar este link.

Qual é a diferença entre URI e URL?

Antes de avançar, vamos primeiro obter um entendimento sobre URI e URL.

Um Uniform Resource Identifier (URI) é usado para identificar um recurso na Internet. Em contraste, Uniform Resource Locator (URL) é algo que o ajuda a localizar e alcançar esse recurso.

Um URI também pode ser um identificador, bem como um localizador, enquanto um URL só pode ser um localizador. Um URL vem em URI; portanto, ambos parecem um pouco semelhantes, mas têm diferenças sutis entre eles.

Por exemplo, facebook.com é um URL porque leva onde a página da web do Facebook está localizada, enquanto uma cafeteria próxima pode ser um URI porque você sabe onde fica a cafeteria (que é um recurso) e também sabe como chegar lá (o caminho).

Codificando um URL usando o método encodeURI() em JavaScript

O método encodeURI() é um dos métodos que pode ser usado para codificar uma URL em JavaScript. Este método pode ser usado se você tiver um URL completo.

Digamos que temos uma URL como https://en.wikipedia.org/[$q=english &language], e agora vamos codificar essa URL usando o método encodeURI() para ver qual saída esse método fornece.

const URL = 'https://en.wikipedia.org/[$q=english &language]';
console.log(encodeURI(URL));

Resultado:

https:  // en.wikipedia.org/%5Bq=english%20&language%5D

Observe que esse método codifica apenas poucos caracteres em uma URL, como um espaço em branco e colchetes.

Este método não codificará os seguintes caracteres especiais.

encodeURI() ` will not encode: ` ~!@#$ & * () =: /,;?+'

Se você quiser codificar alguns dos outros caracteres especiais, pode usar o método encodeURIComponent().

Codificando um URL usando o método encodeURIComponent() em JavaScript

O método encodeURIComponent() também pode ser usado para codificar um URL. Este método pode ser usado se você tiver apenas uma parte de um URL. Como já vimos, o método encodeURI() codifica muito poucos caracteres, mas se você quiser codificar alguns outros caracteres também, pode usar o método encodeURIComponent().

Vamos pegar a mesma URL que pegamos anteriormente e ver qual saída obtemos quando usamos esse método para codificar a string.

const URL = 'https://en.wikipedia.org/[$q=english &language]';
console.log(encodeURIComponent(URL));

Resultado:

https % 3A % 2F % 2Fen.wikipedia.org % 2F % 5B % 24q % 3Denglish % 20 %
    26language % 5D

Como você pode ver, esse método codificou a maior parte do URL.

Este método não codificará os seguintes caracteres especiais.

encodeURIComponent() ` will not encode: ` ~! * ()'

Dependendo de seus requisitos e uso, você pode usar qualquer um ou ambos os métodos acima para codificar uma URL em JavaScript.