উন্নত বিকল্পসমূহ
+ কে স্পেসে রূপান্তর করুন
সক্ষম করা হলে, + অক্ষরগুলো স্পেসে রূপান্তরিত হবে। এটি কোয়েরি প্যারামিটার ডিকোড করার সময় উপযোগী।
লাইভ মোড
সক্ষম করা হলে, আপনি টাইপ করার সাথে সাথে টেক্সট স্বয়ংক্রিয়ভাবে ডিকোড করা হবে।
এই বিকল্পগুলো আপনাকে নিয়ন্ত্রণ করতে সাহায্য করে কিভাবে এনকোড করা অক্ষরগুলো আপনার URL-এ ডিকোড করা হয়।
URL ডিকোডিং কী?
URL ডিকোডিং পার্সেন্ট-এনকোডিং উল্টো করে: এনকোড করা URL-এ থাকা %XX এস্কেপ সিকোয়েন্সগুলো পড়ে সেগুলো যে অক্ষর বোঝায় তাতে ফিরিয়ে দেয়। এভাবেই আপনি ব্রাউজার, API বা লগ লাইন থেকে এনকোডেড অবস্থায় পাওয়া URL থেকে পাঠযোগ্য query string, ফর্মের মান বা path segment পুনরুদ্ধার করেন।
URL ডিকোডিং কীভাবে কাজ করে?
URL ডিকোডিং শতাংশ-এনকোডেড অনুক্রমগুলোকে তাদের মূল অক্ষরে ফিরিয়ে রূপান্তর করতে একটি নির্দিষ্ট প্রক্রিয়া অনুসরণ করে:
- ইনপুট স্ট্রিংয়ে পার্সেন্ট-এনকোডেড এস্কেপ সিকোয়েন্স (%XX) খোঁজা হয়
- প্রতিটি %XX তার দুটি হেক্সাডেসিমাল অঙ্ক থেকে মূল বাইট মানে ফিরিয়ে রূপান্তরিত হয়
- পরপর ডিকোড করা বাইটগুলো UTF-8 অক্ষরে পুনরায় একত্রিত হয় (একটি মাল্টি-বাইট সিকোয়েন্স একটি অক্ষরে পরিণত হয়)
- কোয়েরি-স্ট্রিং প্রসঙ্গে, + একটি স্পেস হিসেবে ডিকোড হয় (application/x-www-form-urlencoded), যখন %2B একটি আক্ষরিক + হিসেবে থাকে
- অসংরক্ষিত অক্ষর এবং ইতিমধ্যে ডিকোড করা টেক্সট অপরিবর্তিতভাবে পাস হয়
কেন URL ডিকোডার ব্যবহার করবেন?
- পাঠযোগ্য আউটপুট: %20, %40 এবং %3D-কে স্পেস, @ এবং =-এ ফিরিয়ে আনুন যাতে URL আসলে কী বলছে তা পড়তে পারেন
- আন্তর্জাতিক টেক্সট: UTF-8 বাইট সিকোয়েন্স থেকে অ্যাকসেন্টযুক্ত ও নন-ASCII অক্ষর পুনর্নির্মাণ করুন, যাতে %C3%A9 আবার é হিসেবে পড়া যায়
- ডিবাগিং: কাজ করার আগে query string, OAuth redirect বা webhook payload-এর ভেতরে আসল মানগুলো পরীক্ষা করুন
- মানসম্মত: RFC 3986 অনুযায়ী ডিকোড করুন, ব্রাউজার ও সার্ভার যে নিয়ম ব্যবহার করে, যাতে আপনি ঠিক সেটাই দেখেন যা তারা দেখে
URL ডিকোডিংয়ের সাধারণ অ্যাপ্লিকেশন কী কী?
URL ডিকোডিং অনেক ওয়েব ডেভেলপমেন্ট পরিস্থিতিতে অপরিহার্য:
- ফর্ম সাবমিশন: application/x-www-form-urlencoded GET ও POST ডেটা থেকে মূল ফিল্ড মানগুলো ফিরে পড়া
- API ডেভেলপমেন্ট: API এন্ডপয়েন্টে আসা পার্সেন্ট-এনকোডেড path ও query প্যারামিটার আনপ্যাক করা
- ফাইল সিস্টেম: URL-এ ভ্রমণের জন্য পার্সেন্ট-এনকোড হওয়া ফাইল পাথ ও নাম পুনরুদ্ধার করা
- লিংক ডিবাগিং: শেয়ার করা বা লগ করা URL ডিকোড করে সেগুলোতে থাকা বিশেষ অক্ষর ও আন্তর্জাতিক টেক্সট দেখা
URL ডিকোডিংয়ের উদাহরণ কেমন দেখায়?
URL ডিকোডিংয়ের কিছু সাধারণ উদাহরণ: %20 (বা +) স্পেসে পরিণত হয়, %40 পরিণত হয় @-তে, %23 পরিণত হয় #-এ, %26 পরিণত হয় &-এ, এবং %3D পরিণত হয় =-এ। %C3%A9-এর মতো UTF-8 সিকোয়েন্স পরিণত হয় আন্তর্জাতিক অক্ষর é-তে।
পার্সেন্ট-এনকোডিং কী?
পার্সেন্ট-এনকোডিং হলো RFC 3986 §2.1 দ্বারা সংজ্ঞায়িত মেকানিজম যা URI-তে অনিরাপদ বা সংরক্ষিত অক্ষরগুলো উপস্থাপন করে। নিয়মটি যান্ত্রিক: প্রতিটি বাইট যা আক্ষরিকভাবে দেখা যায় না তা একটি পার্সেন্ট চিহ্ন এবং দুটি হেক্সাডেসিমাল সংখ্যা হিসেবে লেখা হয় — %XX ফর্ম।
%C3%A9 থেকে é-তে ডিকোডিং আসলে কীভাবে কাজ করে?
এনকোড করা কোয়েরি স্ট্রিং ?q=caf%C3%A9&lang=fr নিন। ডিকোডিং ?q=café&lang=fr তৈরি করে। এখানে বাইট-বাই-বাইট ওয়াকথ্রু:
- ইনপুট:
?q=caf%C3%A9&lang=fr - আউটপুট:
?q=café&lang=fr
%C3→ বাইট0xC3(বাইনারি11000011) — একটি 2-বাইট UTF-8 সিকোয়েন্সের লিড বাইট।%A9→ বাইট0xA9(বাইনারি10101001) — কন্টিনুয়েশন বাইট। একত্রিত করলে,C3 A9হলো U+00E9-এর UTF-8 এনকোডিং, যা হলোé।?,=এবং&অক্ষরগুলো অপরিবর্তিত রাখা হয় কারণ সেগুলো কাঠামোগত — সেগুলো কোয়েরি এবং এর কী/মান জোড়া সীমাবদ্ধ করে।
decodeURIComponent এবং decodeURI-এর মধ্যে পার্থক্য কী?
JavaScript দুটি বিল্ট-ইন ডিকোডার প্রকাশ করে, এবং সেগুলো বিভ্রান্ত করা URL-হ্যান্ডলিংয়ের সবচেয়ে সাধারণ বাগগুলোর একটি:
decodeURIComponent(str)প্রতিটি পার্সেন্ট-এনকোড করা সিকোয়েন্স ডিকোড করে, সংরক্ষিত অক্ষরগুলো সহ যেমন&,=,?,/এবং#। স্বতন্ত্র কোয়েরি-স্ট্রিং মান বা পাথ সেগমেন্টে ব্যবহার করুন — কখনই সম্পূর্ণ URL-এ নয়।decodeURI(str)ইচ্ছাকৃতভাবে রক্ষণশীল: এটি সংরক্ষিত অক্ষরগুলো এড়িয়ে চলে। এটিতে%26দিলে আক্ষরিক স্ট্রিং%26ফেরত আসে,&নয়।
থাম্বের নিয়ম: যদি স্ট্রিংটি URL-এর একটি অংশ হয় (একটি একক প্যারামিটার, একটি ফ্র্যাগমেন্ট, একটি এনকোড করা ফাইলনাম), তাহলে decodeURIComponent ব্যবহার করুন। এই টুলটি decodeURIComponent-এর মতো আচরণ করে।
URL ডিকোড করা মানেই হলো এটি আসলে কী ধারণ করে তা পড়া। উপরে একটি এনকোডেড স্ট্রিং পেস্ট করুন এবং প্রতিটি %XX সিকোয়েন্স আপনার ব্রাউজারে সরাসরি তার অক্ষরে ফিরে আসবে — যাতে আপনি কোনো query parameter ডিবাগ করতে, OAuth redirect যাচাই করতে বা অ্যাকসেন্টযুক্ত ফাইলনাম পুনরুদ্ধার করতে কোনো কিছু সার্ভারে না পাঠিয়েই পারেন।