URL için kodlanmış bir metnin kodu nasıl çözülür
Kod çözme, yüzde kodlamayı tersine çevirir: her %XX dizisi bir bayta dönüşür ve baytlar UTF-8 metin olarak okunur. Bileşen modu decodeURIComponent() kullandığından sonuç, özgün değerin ta kendisidir.
Çözümlü örnek
Çok baytlı UTF-8 dizileri tek bir karaktere dönüşür.
- Girdi
- caf%C3%A9%20%26%20cr%C3%A8me
- Sonuç ·
decodeURIComponent() - café & crème
%20 boşluk olur, ancak + gerçek bir artı işareti olarak kalır.
- Girdi
- a+b%20c
- Sonuç ·
decodeURIComponent() - a+b c
Son dizide bir onaltılık rakam eksik olduğundan araç bir hata gösterir.
- Girdi
- %E0%A4%A
- Sonuç ·
decodeURIComponent() - Geçersiz kodlanmış URL
Eksik rakam eklendiğinde üç bayt tek bir Devanagari harfine çözülür.
- Girdi
- %E0%A4%A4
- Sonuç ·
decodeURIComponent() - त
Araç bunu nasıl işler
- Her %XX dizisi bir bayttır; ardışık baytlar birlikte UTF-8 olarak çözülür, bu yüzden %C3%A9 é olur.
- Artı işareti boşluk sayılmaz: + yine + olarak kalır. Metin bir HTML formundan geldiyse kod çözmeden önce + işaretini %20 ile değiştirin.
- Herhangi bir dizi eksikse veya geçerli UTF-8 değilse girdinin tamamı hatayla reddedilir; hiçbir kısım yarım çözülmez.
- Tam URL modu (decodeURI), %26, %2F ve %3F gibi ayrılmış karakter kaçışlarını kodlu bırakır; böylece URL'nin yapısı değişmez.