URL এনকোডার ও ডিকোডার

URL ও কোয়েরি স্ট্রিংয়ের জন্য টেক্সট percent-encode করুন, এনকোড করা URL ডিকোড করুন, এবং যেকোনো URL-কে অংশে ভাগ করে কোয়েরি প্যারামিটার ডিকোড করে দেখুন।

ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না

এনকোড করা

URL এনকোড / ডিকোড কীভাবে ব্যবহার করবেন

  1. এনকোড বা ডিকোড বেছে নিন।
  2. এনকোড করার সময় বেছে নিন: একটি কোয়েরি মান বা পাথ অংশের জন্য কম্পোনেন্ট, URL-এর কাঠামো রাখতে সম্পূর্ণ URL, অথবা ফর্ম ডেটা, যা application/x-www-form-urlencoded-এর জন্য।
  3. আপনার টেক্সট পেস্ট করুন। ফলাফল সঙ্গে সঙ্গে দেখা যায়; ত্রুটিপূর্ণ escape তাদের অবস্থানসহ জানানো হয়।
  4. একটি সম্পূর্ণ URL URL পার্সার-এ পেস্ট করে এর হোস্ট, পাথ, ফ্র্যাগমেন্ট ও প্রতিটি কোয়েরি প্যারামিটার ডিকোড করা অবস্থায় দেখুন।

URL এনকোডিং কী?

URL-এ শুধু সীমিত কিছু ASCII অক্ষর থাকতে পারে (RFC 3986)। বাকি সবকিছু, যেমন স্পেস, ইংরেজি ছাড়া অন্য ভাষার অক্ষর এবং &, ? ও #-এর মতো বিশেষ অর্থবহ অক্ষর, প্রতিটি UTF-8 বাইটের জন্য একটি শতাংশ চিহ্ন ও তার পরে দুটি hex অঙ্ক হিসেবে লেখা হয়। একটি স্পেস হয় %20 আর é হয় %C3%A9।

encodeURIComponent বনাম encodeURI

ফাংশনযা অপরিবর্তিত রাখেযে কাজে ব্যবহার করবেন
encodeURIComponentA-Z a-z 0-9 - _ . ~একটি কোয়েরি মান, পাথ অংশ বা প্যারামিটারের নাম
encodeURIএছাড়াও : / ? # [ ] @ ! $ & ' ( ) * + , ; =একটি সম্পূর্ণ URL, যার কাঠামো অক্ষত থাকতে হবে

কোয়েরি মানে encodeURI ব্যবহার করা একটি ক্লাসিক বাগ: মানের ভেতরের & এস্কেপ হয় না, ফলে প্যারামিটারটি দুই ভাগ হয়ে যায়। কঠোর RFC 3986 সামঞ্জস্যের জন্য এই টুলের কম্পোনেন্ট মোড ! ' ( ) *-ও এস্কেপ করে।

স্পেসের জন্য %20 নাকি +?

পাথে স্পেস অবশ্যই %20 হতে হবে। HTML ফর্ম সাবমিশনে (application/x-www-form-urlencoded) ও অনেক কোয়েরি স্ট্রিংয়ে স্পেস + হিসেবে লেখা হয়। ডিকোড করার সময় ফর্ম ডেটার জন্য + কে স্পেস হিসেবে ধরুন চালু করুন, আর আক্ষরিক প্লাস চিহ্ন গুরুত্বপূর্ণ হলে বন্ধ করুন, যেমন jane+test@example.com-এ।

সচরাচর জিজ্ঞাসিত প্রশ্ন

ডিকোড করার সময় “ত্রুটিপূর্ণ escape” আসে কেন?
একটি %-এর পরে ঠিক দুটি hex অঙ্ক থাকতে হবে। “50% off”-এর মতো আক্ষরিক শতাংশ চিহ্ন %25 হিসেবে এনকোড করা উচিত ছিল। ত্রুটির বার্তায় ভুল সিকোয়েন্সের অবস্থান দেখানো হয়।
“অবৈধ UTF-8 বাইট সিকোয়েন্স” মানে কী?
বাইটগুলো UTF-8-এ এনকোড করা হয়নি, প্রায়ই কারণ টেক্সটটি Latin-1 ব্যবহারকারী কোনো পুরনো সিস্টেম তৈরি করেছে (যেমন é-এর জন্য %C3%A9-এর বদলে %E9), অথবা স্ট্রিংটি কোনো অক্ষরের মাঝখানে কেটে গেছে।
পুরো URL এনকোড করব নাকি শুধু প্যারামিটারগুলো?
প্রতিটি প্যারামিটারের নাম ও মান আলাদাভাবে কম্পোনেন্ট এনকোডিং দিয়ে এনকোড করুন, তারপর = ও & দিয়ে জুড়ুন। কম্পোনেন্ট মোডে সম্পূর্ণ URL এনকোড করলে ://-ও এস্কেপ হয়ে URL ভেঙে যাবে।
দুবার এনকোড করা কি সমস্যা?
হ্যাঁ। আগে থেকে এনকোড করা স্ট্রিং আবার এনকোড করলে %20 হয়ে যায় %2520। %25-এর পরে hex অঙ্ক দেখলে মানটি সম্ভবত দুবার এনকোড হয়েছে। মূলটি ফিরে পেতে দুবার ডিকোড করুন।

সম্পর্কিত টুল