Utilia

Codificador i descodificador d'URL

Codificador i descodificador d'URL gratuït. Codifica paràmetres o URL completes, descodifica seqüències %XX i tracta + com a espai, al navegador.

Mode

Com utilitzar el codificador i descodificador d’URL

  1. Tria Codifica per convertir text a una forma segura per a URL, o Descodifica per tornar el text codificat amb percentatge a caràcters llegibles.
  2. En codificar, tria un mode: Component per a un sol valor (com un paràmetre de consulta o un segment de ruta), o URL completa per codificar una adreça sencera mantenint-ne l’estructura intacta.
  3. En descodificar dades que provenen d’un formulari HTML o d’una cadena de consulta, activa Tracta + com a espai perquè els signes + es converteixin en espais.
  4. Enganxa el text i copia el resultat. Si una seqüència de percentatge està mal formada, l’eina informa d’un error en lloc d’endevinar.

Què és la codificació d’URL?

Les URL només poden contenir un conjunt limitat de caràcters ASCII. Alguns caràcters, com /, ?, #, & i =, són reservats perquè separen les parts d’una adreça: la ruta, la cadena de consulta i el fragment. Altres, com els espais, les cometes, les lletres accentuades o els emojis, simplement no estan permesos. La codificació d’URL, també anomenada codificació percentual, resol els dos problemes substituint cada byte problemàtic per un % seguit de dues xifres hexadecimals.

El text es converteix primer en bytes UTF-8, i cada byte es codifica per separat. Un espai es converteix en %20, un «i» comercial en %26, é (dos bytes en UTF-8) en %C3%A9, i l’emoji 😀 (quatre bytes) en %F0%9F%98%80. Els caràcters no reservats, és a dir, lletres, xifres i - _ . ~, no necessiten mai codificació.

Mode component o mode URL completa

Triar el mode correcte és la decisió més important, i equivocar-s’hi és una font clàssica d’errors.

El mode component funciona com encodeURIComponent de JavaScript. Codifica tots els caràcters reservats, de manera que el resultat es pot col·locar amb seguretat dins d’una part d’una URL. Fes-lo servir per a valors de paràmetres de consulta, segments de ruta o qualsevol cosa que hagi escrit una persona. Per exemple, el terme de cerca rock & roll es converteix en rock%20%26%20roll. Si no codifiquessis el &, el servidor llegiria roll com l’inici d’un paràmetre nou.

El mode URL completa funciona com encodeURI. Suposa que l’entrada ja és una adreça completa i conserva els caràcters que li donen estructura, com : / ? # & i =, mentre codifica els espais i els caràcters no ASCII. Fes-lo servir per netejar una adreça com https://example.com/café menu?q=tea i convertir-la en https://example.com/caf%C3%A9%20menu?q=tea. No el facis servir en valors individuals: un & dins d’un valor quedaria sense codificar i trencaria la cadena de consulta.

Una bona regla general: construeix les URL a partir de parts, codifica cada valor en mode component, i fes servir el mode URL completa només per a adreces que ja reps muntades.

El signe + i la codificació de formularis

Els formularis HTML enviats amb application/x-www-form-urlencoded codifiquen els espais com a + en lloc de %20. Per això les URL de cerca sovint tenen un aspecte com ?q=hola+món. La descodificació percentual estàndard deixa + sense canvis, perquè en una ruta un més és només un més. Quan descodifiquis una cadena de consulta o dades d’un formulari, activa Tracta + com a espai per obtenir hola món. Deixa-ho desactivat per a rutes i per a valors on importa un + literal, com els números de telèfon o les dades en Base64. Un signe més real en dades de formulari s’envia com a %2B, de manera que es descodifica correctament en tots dos casos.

Privadesa

La codificació i la descodificació s’executen íntegrament al teu navegador. Res del que enganxes, incloses les URL que poden contenir tokens, identificadors de sessió o dades personals, s’envia a un servidor ni es desa.

Preguntes freqüents

Per què la descodificació falla amb un error de «mal formada»?

Un % ha d’anar seguit exactament de dues xifres hexadecimals, i els bytes resultants han de formar UTF-8 vàlid. Cadenes com 100%, %G1 o una seqüència truncada com %E2%82 no es poden descodificar de manera fiable, de manera que l’eina informa del problema en lloc de produir text incorrecte. Per incloure un signe de percentatge literal, codifica’l com a %25.

Quina diferència hi ha entre %20 i +?

Tots dos poden representar un espai, però en contextos diferents. %20 és vàlid a qualsevol lloc d’una URL. + vol dir un espai només en cadenes de consulta codificades com a formulari; en altres llocs és un signe més literal.

He de codificar una URL sencera en mode component?

Només si tota la URL és un valor dins d’una altra URL, per exemple un paràmetre redirect=. En aquest cas, el mode component és exactament el correcte: https://a.com/?x=1 es converteix en https%3A%2F%2Fa.com%2F%3Fx%3D1.

Per què el meu text està codificat dues vegades?

La doble codificació passa quan el text ja codificat es torna a codificar, de manera que %20 es converteix en %2520. Descodifica una vegada per comprovar-ho, i assegura’t que cada valor només es codifica en el moment d’inserir-lo a la URL.

La codificació d'URL amaga o protegeix les dades?

No. La codificació percentual és totalment reversible i no ofereix cap seguretat. Els valors sensibles de les URL poden acabar a l’historial del navegador i als registres del servidor, de manera que evita posar-hi secrets.