Codificador/Descodificador de URL + Entidades HTML

Codifique URLs, descodifique escapes percentuais e converta entidades HTML.

Ferramenta
Ação
Escopo da URL
Entrada
Saída
Pronto. Cole o texto e escolha uma ação.

O seu texto de URL e HTML é convertido no seu navegador. Nada é enviado para o BroBroGo.

Perguntas Frequentes

Devo escolher componente de URL ou URL completa?

Use "Componente" para valores de consulta (query values), partes de caminhos ou valores de formulários. Use "URL completa" quando quiser manter legíveis caracteres como : / ? & =.

O que a codificação de entidades HTML altera?

Transforma caracteres como <, >, &, aspas e textos não-ASCII em entidades que podem ser coladas com segurança em textos ou atributos HTML.

Porque é que a descodificação de URL às vezes falha?

As sequências de escape com percentagem devem ser sequências UTF-8 completas. Uma sequência corrompida como %E0%A4%A não pode ser descodificada sem adivinhação.

O propósito da codificação e descodificação de URLs

A codificação de URLs, frequentemente designada por codificação percentual, é um mecanismo utilizado para traduzir caracteres num formato que possa ser transmitido de forma segura através da Internet. Os URLs utilizam um conjunto limitado de caracteres pertencentes ao padrão US-ASCII. Qualquer caractere que não pertença a este grupo, ou que possua um significado especial no contexto de um URL (como delimitadores de protocolo ou de parâmetros), precisa de ser convertido.

O processo de codificação substitui os caracteres não permitidos por um símbolo de percentagem (%) seguido por dois dígitos hexadecimais que representam o valor do byte do caractere em UTF-8. Por exemplo, o caractere de espaço é convertido em %20. A descodificação realiza o processo inverso, restaurando as sequências de escape percentuais para os seus caracteres originais legíveis.

Esta operação é essencial para programadores, editores de conteúdo e pessoal de suporte que necessitam de incorporar valores de consulta (query values), partes de caminhos ou valores de formulários em URLs sem corromper a estrutura do endereço web.

Diferença entre codificar um componente de URL e uma URL completa

Ao manipular URLs, é crucial distinguir entre a codificação de um componente individual e a codificação de um URL na sua totalidade. A ferramenta disponibiliza duas opções de escopo para esta finalidade:

  • Componente: Esta opção aplica as funções JavaScript encodeURIComponent ou decodeURIComponent. É indicada para codificar valores individuais que serão inseridos dentro de parâmetros de consulta ou segmentos de caminho. Sob este escopo, todos os caracteres especiais, incluindo :, /, ?, & e =, são codificados. Por exemplo, a entrada hello world & city=上海 é convertida para hello%20world%20%26%20city%3D%E4%B8%8A%E6%B5%B7.
  • URL completa: Esta opção utiliza as funções encodeURI ou decodeURI. É aplicada quando se pretende codificar um endereço web inteiro, mantendo intactos os caracteres funcionais que definem a estrutura do URL, tais como os separadores de protocolo, caminhos e parâmetros de consulta. Desta forma, caracteres como :, /, ?, & e = permanecem legíveis para que o navegador continue a reconhecer o URL como um endereço válido.

Escapar e desescapar entidades HTML

O processo de escapar entidades HTML consiste em converter caracteres especiais em sequências de texto específicas, conhecidas como entidades HTML. Isto é necessário porque determinados caracteres, como <, >, & e aspas, possuem funções sintáticas na linguagem HTML. Se forem inseridos diretamente no corpo do texto, o navegador pode interpretá-los incorretamente como tags ou comandos, desestruturando a página.

Ao escapar estes caracteres, transformam-se símbolos como < em &lt;, > em &gt; e & em &amp;. Adicionalmente, caracteres não-ASCII também são convertidos para garantir a correta exibição em qualquer codificação de documento. Por exemplo, a cadeia de caracteres <button title="Save & close">保存</button> é convertida de modo a que possa ser exibida de forma segura como texto plano numa página web, sem ser executada como um elemento de botão real. O processo inverso, desescapar, reverte estas entidades para os seus caracteres originais.

Sequências de escape percentuais e validação UTF-8

Na descodificação de URLs, os valores que se seguem ao caractere % têm de representar sequências de bytes UTF-8 válidas e completas. O UTF-8 é um esquema de codificação de comprimento variável, onde um único caractere pode ser representado por um, dois, três ou quatro bytes.

Se um URL contiver uma sequência de escape percentual incompleta ou corrompida, o motor de descodificação não conseguirá mapear os bytes para um caractere correspondente. Um exemplo de uma sequência corrompida é %E0%A4%A, onde falta o último byte necessário para completar a sequência UTF-8. Nestes casos, a ferramenta interrompe a operação e exibe a mensagem de erro: "Este texto de URL possui uma sequência de escape com percentagem corrompida.".

Distinção entre codificação e sanitização de segurança

É importante sublinhar que a codificação de URLs e o escape de entidades HTML não são equivalentes a processos de sanitização de segurança contra ataques como Cross-Site Scripting (XSS) ou injeção de SQL.

A codificação e o escape servem para garantir a integridade dos dados e a correta interpretação sintática dos formatos de transmissão (URLs e documentos HTML). Embora impeçam que caracteres especiais sejam interpretados como código pelo navegador num contexto estático, a segurança de uma aplicação web exige filtros de validação, sanitização ativa de dados de entrada e a utilização de contextos de execução seguros, práticas que vão além da simples conversão de caracteres.

Funcionamento e limites técnicos da ferramenta

A conversão de texto é realizada localmente, diretamente no navegador do utilizador. O seu texto de URL e HTML é convertido no seu navegador. Nada é enviado para o BroBroGo.

A ferramenta possui regras de validação e limites operacionais para garantir a estabilidade do navegador:

  • Limite de tamanho: O limite máximo para processamento é de 2 000 000 de caracteres. Se a entrada exceder este valor, surge o aviso: "Essa entrada é demasiado longa para esta ferramenta. Mantenha-a com menos de {max} caracteres.".
  • Controlo de tempo limite: Se o processamento de uma cadeia de caracteres complexa demorar demasiado tempo, a operação é interrompida com a mensagem: "Esta conversão está a demorar demasiado tempo. Tente uma entrada menor.".
  • Tratamento de erros genéricos: Caso ocorra uma falha imprevista na conversão, o sistema apresenta o aviso: "Não foi possível converter esta entrada.".
  • Ausência de dados: Se o utilizador tentar converter sem introduzir texto, a ferramenta indica: "Cole alguma entrada primeiro.".

O painel de controlo permite alternar entre os modos "URL" e "Entidades HTML". Quando o modo de entidades HTML é selecionado, o controlo de escopo da URL é automaticamente ocultado da interface, uma vez que as regras de escopo de URL não se aplicam a documentos HTML.

Perguntas Frequentes

Devo escolher componente de URL ou URL completa? Use "Componente" para valores de consulta (query values), partes de caminhos ou valores de formulários. Use "URL completa" quando quiser manter legíveis caracteres como: /? & =.

O que a codificação de entidades HTML altera? Transforma caracteres como <, >, &, aspas e textos não-ASCII em entidades que podem ser coladas com segurança em textos ou atributos HTML.

Porque é que a descodificação de URL às vezes falha? As sequências de escape com percentagem devem ser sequências UTF-8 completas. Uma sequência corrompida como %E0%A4%A não pode ser descodificada sem adivinhação.