URL Encoder / Decoder
Manzil ichidagi bo'shliq, kirill harf va maxsus belgilarni xavfsiz formatga o'giring yoki teskarisiga oching.
Manzil qismlari
URL kodlash nima
Manzil (URL) faqat cheklangan belgilar to'plamidan iborat bo'lishi kerak: lotin harflari, raqamlar va bir nechta belgi. Bo'shliq, kirill harf, &, ?, # kabi belgilar to'g'ridan-to'g'ri yozilsa, manzil sinadi yoki noto'g'ri o'qiladi. Shuning uchun ular foiz-kodlash (percent-encoding) bilan almashtiriladi: har bayt % va ikkita o'n oltilik raqam ko'rinishida yoziladi — bo'shliq %20 bo'ladi.
Qism va to'liq manzil — farqi
Ikki rejim bir xil emas, va aynan shu yerda eng ko'p xato qilinadi:
- Qism (
encodeURIComponent) — bitta qiymatni kodlaydi va&,?,=,/belgilarini ham almashtiradi. Manzilga parametr qo'shayotganda shu kerak:?q=dan keyingi qiymat. - To'liq manzil (
encodeURI) — manzil tuzilishini saqlaydi:/,?,&tegilmaydi, faqat bo'shliq va harflar kodlanadi. Tayyor manzilni tozalash uchun ishlatiladi.
Amaliy qoida: qiymatni kodlayotgan bo'lsangiz — "Qism",butun manzilni kodlayotgan bo'lsangiz — "To'liq manzil".
Qayerda kerak bo'ladi
- Telegram bot —
t.me/share/url=yokisendMessagega matn uzatganda kodlanmagan bo'shliq xabarni yarim yo'lda kesib qo'yadi. - Qidiruv parametri —
?q=samarqand mehmonxonaishlamaydi,?q=samarqand%20mehmonxonaishlaydi. - Kirill manzillar — brauzer manzil qatorida
ўзбекистонko'rsatadi, lekin serverga%D1%9E%D0%B7...ketadi. Log va API'da shuning uchun "tushunarsiz" qator ko'rinadi. - Qaytish manzili (redirect) — bitta manzil ichiga boshqa manzilni parametr qilib joylashda kodlash majburiy, aks holda ichki manzilning
&belgisi tashqi manzilni buzadi.
Nega + ba'zan bo'shliqqa aylanadi
Eski HTML forma formati (application/x-www-form-urlencoded) bo'shliqni + bilan yozadi, foiz-kodlash esa%20 bilan. Ikkalasi ham uchraydi. Ochish rejimida bu vosita + ni bo'shliq deb hisoblamaydi — chunki+ matnning o'zida ham bo'lishi mumkin (masalan+998 telefon raqami). Forma ma'lumotini ochayotgan bo'lsangiz, + larni qo'lda bo'shliqqa almashtiring.
Barcha hisob-kitob brauzeringizda bajariladi — kiritgan ma'lumotingiz serverga yuborilmaydi.