Codificator și decodificator URL

Codifică procentual text pentru URL-uri și query string-uri, decodifică URL-uri codificate și descompune orice URL în părți, cu parametrii de interogare decodificați.

Rulează în browserFără înregistrareNimic nu este încărcat

Codificat

Cum se folosește: Codificare / decodificare URL

  1. Alege Codifică sau Decodifică.
  2. La codificare, alege Componentă pentru o singură valoare de parametru sau segment de cale, URL complet pentru a păstra structura URL-ului sau Date de formular pentru application/x-www-form-urlencoded.
  3. Lipește textul. Rezultatul apare instant; escape-urile greșite sunt raportate cu poziția lor.
  4. Lipește un URL complet în parserul URL pentru a vedea host-ul, calea, fragmentul și fiecare parametru de interogare decodificat.

Ce este codificarea URL?

URL-urile pot conține doar un set limitat de caractere ASCII (RFC 3986). Orice altceva, inclusiv spațiile, literele cu diacritice și caracterele cu semnificație specială precum &, ? și #, se scrie ca semn procent urmat de două cifre hexazecimale pentru fiecare octet UTF-8. Un spațiu devine %20, iar é devine %C3%A9.

encodeURIComponent vs. encodeURI

FuncțieLasă neschimbateFolosește pentru
encodeURIComponentA-Z a-z 0-9 - _ . ~O singură valoare de parametru, segment de cale sau nume de parametru
encodeURIÎn plus : / ? # [ ] @ ! $ & ' ( ) * + , ; =Un URL întreg a cărui structură trebuie păstrată

Folosirea encodeURI pentru o valoare de parametru este o greșeală clasică: un & din interiorul valorii nu este escapat, așa că împarte parametrul în două. Modul Componentă al acestui instrument escapează și ! ' ( ) * pentru conformitate strictă cu RFC 3986.

%20 sau + pentru spații?

În căi, un spațiu trebuie să fie %20. În trimiterile de formulare HTML (application/x-www-form-urlencoded) și în multe query string-uri, un spațiu se scrie ca +. La decodificare, activează Tratează + ca spațiu pentru date de formular și dezactivează-l când contează un plus literal, ca în jane+test@example.com.

Întrebări frecvente

De ce primesc „Secvență escape greșită” la decodificare?
Un % trebuie urmat de exact două cifre hexazecimale. Un semn procent literal, ca în „50% reducere”, ar fi trebuit codificat ca %25. Eroarea arată poziția secvenței greșite.
Ce înseamnă „Secvență de octeți UTF-8 invalidă”?
Octeții nu au fost codificați ca UTF-8, adesea pentru că textul a fost produs de un sistem vechi care folosește Latin-1 (de exemplu %E9 pentru é în loc de %C3%A9), sau șirul a fost tăiat în mijlocul unui caracter.
Ar trebui să codific tot URL-ul sau doar parametrii?
Codifică separat fiecare nume și valoare de parametru cu codificarea de componentă, apoi unește-le cu = și &. Codificarea unui URL complet în modul componentă ar escapa și :// și l-ar strica.
Este dubla codificare o problemă?
Da. Codificarea unui șir deja codificat transformă %20 în %2520. Dacă vezi %25 urmat de cifre hexazecimale, valoarea a fost probabil codificată de două ori. Decodific-o de două ori pentru a recupera originalul.

Instrumente similare