Bezmaksas pārveidotājs

URL kodētājs / Dekodētājs

Tūlītēja pārlūkprogrammas kodēšana un atšifrēšana URL un URI komponenti. Bezmaksas, privāts un nav nepieciešama augšupielāde.

Or

Par šo rīku

URL kodējums (formāli procentuālais kodējums, definēts RFC 3986) pārveido rakstzīmes, kurām vietrāžos URL ir īpaša nozīme — atstarpes, slīpsvītras, & zīmes, jaucējzīmes — drošā formā, izmantojot procentu zīmes, kam seko heksades cipari. Atstarpes rakstzīme kļūst par %20 (vai + veidlapas kodētā kontekstā), simbols & kļūst par %26 un tā tālāk. Bez šī kodējuma īpašās rakstzīmes tiktu interpretētas kā URL sintakse, nevis kā burtiski dati, kas pārkāpj URL vai izraisa neparedzētu darbību.

Ir divi saistīti, bet atšķirīgi kodējumi. Standarta URL komponentu kodējums izmanto %-atsoļus visam, kas atrodas ārpus nerezervētās rakstzīmju kopas: A–Z, a–z, 0–9, defise, pasvītra, punkts, tilde. Formā kodētais variants (application/x-www-form-urlencoded) papildus apstrādā atstarpes kā pluszīmes un izmanto atšķirīgus noteikumus dažām citām rakstzīmēm. JavaScript encodeURIComponent izmanto stingru komponentu kodējumu; encodeURI izmanto pieļaujamāku formu, kas saglabā URL struktūras rakstzīmes.

Šis rīks piedāvā gan kodēšanu, gan dekodēšanu. Kodēšanas režīms aplauj katru rakstzīmi, kurai nepieciešama atkāpšanās rakstzīme %HH formātā; dekodēšanas režīms apvērš transformāciju. Abas pilnībā darbojas jūsu pārlūkprogrammā, izmantojot iebūvētās JavaScript URL funkcijas, tāpēc dati nekur netiek nosūtīti.

Kāpēc kodēt vai atšifrēt URL

Ikreiz, kad vietrādī URL tiek iekļauti dati — vaicājuma virknes parametri, ceļa segmenti ar lietotāja ievadi, novirzīšanas mērķi — ir nepieciešams pareizs kodējums. Ja kodēšana netiek veikta, tiek izveidoti vietrāži URL, kas sabojājas, parādoties īpašām rakstzīmēm, vaicājuma virknēm tiek noplūdušas parametru robežas (pārvēršot &x=1 par atsevišķu parametru) vai tīmekļa serveri tiek bloķēti nepareizi veidotu pieprasījumu dēļ.

Dekodēšana ir apgriezta: sākotnējo datu iegūšana no kodēta URL. Pārlūka adrešu joslās URL bieži tiek rādīti kodētā veidā; dekodēšana atklāj, kas patiesībā bija paredzēts. Reģistrācija, atkļūdošana un drošības analīze gūst labumu no dekodētiem URL, kas parāda sākotnējos parametrus un ceļus.

Kā lietot

Ielīmējiet virkni, izvēlieties virzienu.

  1. Izvēlieties kodēšanu vai atšifrēšanu: Encode aplauz nedrošas rakstzīmes %HH formātā. Dekodēšana apvērš %HH aizbēgšanu atpakaļ uz burtiskām rakstzīmēm.
  2. Pievienojiet ievades tekstu: Ielīmējiet virkni, lai kodētu vai atšifrētu. Kodēšanai tā parasti ir burtiska vērtība ar atstarpēm, īpašām rakstzīmēm vai saturu, kas nav ASCII. Dekodēšanai tas ir URL vai URL komponents, kas satur %HH izplūdes.
  3. Konvertēt: Rīks izmanto encodeURIComponent vai decodeURIComponent. Kodēto izvadi var droši iegult URL; dekodētā izvade ir sākotnējā literālā vērtība.
  4. Kopēt vai lejupielādēt: Izmantojiet rezultātu visur, kur tas nepieciešams. Kodētās vērtības iekļaujas URL; dekodētās vērtības atklāj sākotnējos datus.

Bieži lietojami gadījumi

Tehniskās detaļas

encodeURIComponent kodē katru rakstzīmi ārpus nerezervētās kopas [A-Za-z0-9-_.~]. Atstarpes kļūst par %20, plus zīmes kļūst par %2B, vienādības zīmes kļūst par %3D un tā tālāk. Rakstzīmes ārpus ASCII vispirms tiek kodētas UTF-8, un pēc tam katrs baits ir % atsoļš.

encodeURI ir pieļaujamāks un ir paredzēts pilniem URL, nevis komponentiem. Tas neiziet no /, ?, &, =, # un dažiem citiem, jo ​​šīm rakstzīmēm ir URL sintakses nozīme. Lietotāja datu iegulšanai vietrādī URL encodeURIComponent gandrīz vienmēr ir pareizā izvēle.

decodeURIComponent apvērš %-escape, pārbaudot, vai katrs atsoļa veids ir pareizi izveidots un iegūtie baiti veido derīgu UTF-8. Nepareizi veidota ievade rada kļūdu, nevis rada atkritumus.

Labākā prakse

Bieži uzdotie jautājumi

Kurām rakstzīmēm ir nepieciešams URL kodējums?
Rezervētās rakstzīmes (&, =, ?, #, /, :, @) un nedrošas rakstzīmes (atstarpes, <, >, {, }, |, ^, ~, [, ], `) ir jākodē. Burtciparu rakstzīmes un -_.~ ir drošas, un tām nav nepieciešams kodējums.
Kāda ir atšķirība starp encodeURI un encodeURIComponent?
encodeURI kodē pilnu URL, bet saglabā rezervētās rakstzīmes (://?#). encodeURIComponent kodē visu, izņemot -_.!~*'() — izmantojiet to vaicājuma parametru vērtībām. Šis rīks piedāvā abus režīmus.
Kā vietrāžos URL tiek kodētas atstarpes?
Atstarpes var kodēt kā %20 (standarta procentuālais kodējums) vai + (formas kodējums). %20 ir pareizs URL ceļiem, savukārt + tiek izmantots vaicājumu virknēs no HTML formām. Šis rīks pēc noklusējuma izmanto %20.
Vai es varu kodēt unikoda rakstzīmes?
Jā. Unikoda rakstzīmes vispirms tiek kodētas UTF-8 baitos, pēc tam katrs baits tiek kodēts procentos. Piemēram, “日” kļūst par %E6%97%A5 (trīs UTF-8 baiti, katrs procentos kodēts).
Vai man vajadzētu izmantot encodeURI vai encodeURIComponent?
Gandrīz vienmēr encodeURIComponent. Izmantojiet encodeURI tikai tad, ja jums ir pilnīgs URL un vēlaties saglabāt tā struktūru — parasti tas ir reti, jo jūs tik un tā veidojat URL no komponentiem.
Vai mani dati ir augšupielādēti serverī?
Nē. URL kodēšana un atkodēšana pilnībā notiek jūsu pārlūkprogrammā.
Vai tas apstrādā unikoda emocijzīmes?
Jā. Emocijzīmes ir vairāku baitu UTF-8 sekvences; kodētājs izveido %-izmantotu baitu ķēdi, ko dekodētāji pareizi saliek atpakaļ sākotnējā emocijzīmē.
Ko darīt, ja manā ievadē ir %HH izskata virknes, kas faktiski nav kodētas?
Kodēšana katru % pārvērš par %25, pēc tam atkārtoti izmanto atkāpšanos pārējiem. Stingras ievades dekodēšana rada kļūdas nepareizi veidotos aizbēgšanas gadījumos; neviennozīmīga izskata virknes var tikt nepareizi atšifrētas.