ভাষা বেছে নিন

ইউআরএল ডিকোডার

এনকোড করা ইউআরএল বা কোয়েরি স্ট্রিং ডিকোড করে সাধারণ টেক্সটে রূপান্তর করুন। এতে প্লাস (+) চিহ্নকে স্পেস হিসেবে ডিকোড করার বিকল্প সুবিধা রয়েছে।

Mehmet Demiray (মেহমেত দেমিরায়) প্রকাশিত আপডেট হয়েছে
শেয়ার করুন
কম্পোনেন্টটি সংরক্ষিত ক্যারেক্টার এনকোড করে; সম্পূর্ণ অংশটি ইউআরএল গঠন বজায় রাখে

এনকোড করা ইউআরএল পড়া এবং বোঝা

ইন্টারনেটে ব্রাউজ করার সময় বা সার্ভার লগ বিশ্লেষণ করার সময় অনেক সময় ইউআরএল-এর মধ্যে %20, %E0%A6 এর মতো অদ্ভুত অক্ষর দেখা যায়। এগুলি মূলত পার্সেন্ট-এনকোডেড (percent-encoded) ক্যারেক্টার। ব্রাউজার যখন কোনো বাংলা টেক্সট, ইমোজি বা স্পেশাল ক্যারেক্টার সম্বলিত ইউআরএল সার্ভারে পাঠায়, তখন সেটি একটি নির্দিষ্ট নিরাপদ ফরম্যাটে পরিবর্তিত হয়। এই পরিবর্তনের মূল কারণ হলো ইন্টারনেটের মূল প্রোটোকলগুলো সব ধরনের ক্যারেক্টার সরাসরি সাপোর্ট করে না। ডেটা আদান-প্রদানে যাতে কোনো ডেটা লস বা সমস্যা না হয়, তাই এই এনকোডিং করা হয়। ইউআরএল ডিকোড টুলটি এই দুর্বোধ্য %xx সিকোয়েন্সগুলোকে পুনরায় মানুষের পড়ার উপযোগী টেক্সটে রূপান্তর করে। বিশেষ করে উইকিপিডিয়া বা বাংলা ভাষায় লেখা কোনো নিউজ পোর্টালের ওয়েব পেজের লিঙ্ক কপি করলে সেটি অনেক দীর্ঘ এবং দুর্বোধ্য দেখায়। এই টুল ব্যবহার করে খুব সহজেই সেই দীর্ঘ লিঙ্কের আসল অর্থ বা মূল টেক্সটটি পড়া সম্ভব হয়।

ডিকোডিংয়ের নিয়ম এবং কাজ করার পদ্ধতি

ইউআরএল ডিকোড করার প্রক্রিয়াটি মূলত RFC 3986 স্ট্যান্ডার্ড অনুসরণ করে কাজ করে। যখন কোনো ইউআরএল-এ % চিহ্নের পর দুটি হেক্সাডেসিমেল (hexadecimal) সংখ্যা থাকে, ডিকোডার সেটিকে একটি বাইটে (byte) রূপান্তর করে। এরপর এই বাইটগুলোকে UTF-8 এনকোডিং স্ট্যান্ডার্ড অনুযায়ী পুনরায় একত্রিত করে আসল টেক্সট তৈরি করা হয়। উদাহরণস্বরূপ, বাংলা অক্ষর 'ব' এর এনকোডেড রূপ হলো %E0%A6%AC। ডিকোডার এই তিনটি হেক্স পেয়ারকে আলাদা করে পড়ে এবং সেগুলোকে মিলিয়ে পুনরায় 'ব' অক্ষরটি প্রদর্শন করে। এটি শুধুমাত্র সাধারণ টেক্সট নয়, বরং বিভিন্ন জটিল মাল্টি-বাইট ক্যারেক্টার, ইমোজি বা অন্যান্য ভাষার বর্ণমালাও নির্ভুলভাবে ডিকোড করতে সক্ষম। আধুনিক ওয়েব অ্যাপ্লিকেশনে ডেটা ট্রান্সফারের সময় এই রূপান্তরটি প্রতিনিয়ত ঘটে থাকে। যদি এই এনকোডিংয়ের উল্টো প্রক্রিয়াটি করতে চান বা কোনো টেক্সটকে ওয়েব-সেফ ফরম্যাটে রূপান্তর করতে চান, তবে ইউআরএল এনকোড টুলের সাহায্য নিতে পারেন।

প্লাস (+) চিহ্নের ব্যবহার ও স্পেসের সাথে সম্পর্ক

ইউআরএল ডিকোড করার সময় একটি সাধারণ বিভ্রান্তি তৈরি হয় + (প্লাস) চিহ্ন নিয়ে। ওয়েব ফর্ম সাবমিট করার সময় (যেমন application/x-www-form-urlencoded ফরম্যাটে ডেটা পাঠানোর সময়) অনেক ক্ষেত্রে স্পেসকে + চিহ্ন দিয়ে এনকোড করা হয়। কিন্তু সাধারণ ইউআরএল পাথে স্পেসকে %20 হিসেবে লেখা হয় এবং + চিহ্নকে একটি সাধারণ গাণিতিক বা টেক্সট চিহ্ন হিসেবেই ধরা হয়। ইউআরএল ডিকোড টুলে একটি বিশেষ অপশন থাকে যার মাধ্যমে ব্যবহারকারী নির্ধারণ করতে পারেন তিনি + চিহ্নকে স্পেস হিসেবে ডিকোড করতে চান নাকি আসল + চিহ্ন হিসেবেই রাখতে চান। লগ ফাইল বা কোয়েরি স্ট্রিং (query string) বিশ্লেষণ করার সময় এই অপশনটি অত্যন্ত কার্যকরী। কারণ আপনি যদি ফর্ম ডেটা ডিকোড করেন, তবে + কে স্পেস হিসেবে ডিকোড করা জরুরি। অন্যদিকে, সাধারণ ইউআরএল পাথের ক্ষেত্রে এটি বন্ধ রাখাই শ্রেয়।

বাস্তব ক্ষেত্রে ইউআরএল ডিকোড টুলের ব্যবহার

ডেভেলপার, এসইও (SEO) বিশেষজ্ঞ এবং ডেটা অ্যানালিস্টদের দৈনন্দিন কাজে ইউআরএল ডিকোড টুলটি ব্যাপকভাবে ব্যবহৃত হয়। ডিজিটাল মার্কেটিংয়ের ক্ষেত্রে বিভিন্ন ক্যাম্পেইনের UTM প্যারামিটারগুলো অনেক সময় এনকোড করা থাকে। সেগুলো ডিকোড করে ক্যাম্পেইনের সোর্স, মিডিয়াম বা কিওয়ার্ড সম্পর্কে সঠিক তথ্য পাওয়া যায়। সার্ভার লগ বিশ্লেষণ করার সময় ব্রাউজার থেকে আসা রিকোয়েস্টগুলো এনকোডেড অবস্থায় থাকে, যা সরাসরি পড়া কঠিন। এই টুল দিয়ে লগ ফাইল থেকে পাওয়া দীর্ঘ লিঙ্কগুলোকে ডিকোড করে সহজেই ত্রুটি (debugging) বা রিডাইরেক্ট (redirect) সংক্রান্ত সমস্যাগুলো সমাধান করা যায়। ই-কমার্স সাইটের সার্চ লগগুলো বিশ্লেষণ করে গ্রাহকরা কী খুঁজছেন তা বুঝতেও এই টুল সাহায্য করে। কখনো কখনো এপিআই (API) থেকে আসা এনক্রিপ্টেড বা এনকোডেড ডেটা যাচাই করতে বেস৬৪ ডিকোড বা জেডব্লিউটি ডিকোডার টুলের পাশাপাশি এই টুলটিরও প্রয়োজন পড়ে।

ইউআরএল-এ কেন %20 এবং %3D এর মতো চিহ্ন থাকে?

ইন্টারনেটের প্রোটোকল অনুযায়ী ইউআরএল-এ শুধুমাত্র কিছু নির্দিষ্ট ক্যারেক্টার (যেমন ইংরেজি বর্ণমালা, সংখ্যা এবং কিছু সাধারণ চিহ্ন) ব্যবহার করা নিরাপদ। স্পেস, সমান চিহ্ন (=), প্রশ্নবোধক চিহ্ন (?), অ্যাম্পারস্যান্ড (&) বা বাংলা অক্ষরের মতো স্পেশাল ক্যারেক্টারগুলো সরাসরি ইউআরএল-এ ব্যবহার করা যায় না। কারণ ব্রাউজার এবং সার্ভার এই চিহ্নগুলোকে ইউআরএল-এর স্ট্রাকচারাল অংশ হিসেবে ধরে নিতে পারে, যার ফলে রিকোয়েস্ট ভুল পথে যেতে পারে। তাই স্পেসের পরিবর্তে %20 এবং সমান চিহ্নের পরিবর্তে %3D ব্যবহার করা হয়। এটি ডেটা ট্রান্সমিশনের সময় কোনো ধরনের বিভ্রান্তি বা ত্রুটি এড়াতে সাহায্য করে। ইউআরএল ডিকোড টুলটি এই এনকোড করা ক্যারেক্টারগুলোকে আবার তাদের মূল রূপে ফিরিয়ে আনে, যাতে সাধারণ ব্যবহারকারীরা সহজেই বুঝতে পারেন ইউআরএল-এর ভেতরে কী তথ্য লুকানো আছে।

কীভাবে একটি সম্পূর্ণ কোয়েরি স্ট্রিং ডিকোড করবেন?

একটি সম্পূর্ণ কোয়েরি স্ট্রিং ডিকোড করা খুবই সহজ এবং এর জন্য কোনো প্রোগ্রামিং জ্ঞানের প্রয়োজন নেই। প্রথমে আপনার সার্ভার লগ বা ব্রাউজার থেকে সম্পূর্ণ এনকোডেড ইউআরএল বা কোয়েরি স্ট্রিংটি (যেমন name=%E0%A6%B0%E0%A6%BE%E0%A6%B9%E0%A7%81%E0%A6%B2&city=Dhaka) কপি করুন। এরপর ইউআরএল ডিকোড টুলের ইনপুট বক্সে সেটি পেস্ট করুন। যদি আপনার কোয়েরি স্ট্রিংয়ে স্পেসের বদলে + চিহ্ন থাকে (যা সাধারণত সার্চ ফর্মের ক্ষেত্রে দেখা যায়), তবে 'প্লাসকে স্পেস হিসেবে ডিকোড করুন' অপশনটি চালু করে দিন। টুলটি তাৎক্ষণিকভাবে ডিকোড করা টেক্সট আউটপুট বক্সে দেখাবে। আপনি চাইলে এই ডিকোড করা টেক্সটটি এক ক্লিকে কপি করতে পারেন অথবা টেক্সট ফাইল হিসেবে ডাউনলোড করে পরবর্তী ব্যবহারের জন্য আপনার কম্পিউটারে বা মোবাইলে সংরক্ষণ করতে পারেন।

%ZZ এর মতো ভুল বা অবৈধ সিকোয়েন্স থাকলে কী হয়?

পার্সেন্ট-এনকোডিংয়ের নিয়ম অনুযায়ী % চিহ্নের পর অবশ্যই দুটি সঠিক হেক্সাডেসিমেল সংখ্যা (০-৯ এবং A-F) থাকতে হবে। যদি ইনপুটে %ZZ বা %1G এর মতো কোনো অবৈধ বা ভুল সিকোয়েন্স থাকে, তবে ইউআরএল ডিকোড টুলটি সেটি সঠিকভাবে ডিকোড করতে পারবে না। কারণ 'Z' বা 'G' হেক্সাডেসিমেল নম্বর সিস্টেমের অংশ নয়। সাধারণত এই ধরনের ক্ষেত্রে টুলটি ব্যবহারকারীকে একটি স্পষ্ট এরর মেসেজ (error message) দেখায় যে ইনপুট করা টেক্সটটি সঠিক ফরম্যাটে নেই বা এটি একটি ম্যালফর্মড (malformed) সিকোয়েন্স। কিছু ক্ষেত্রে ডিকোডার ভুল অংশটুকুকে যেমন আছে তেমনই রেখে দেয় বা একটি রিপ্লেসমেন্ট ক্যারেক্টার (replacement character) প্রদর্শন করে বাকি অংশটুকু ডিকোড করার চেষ্টা করে। তাই নির্ভুল ফলাফলের জন্য ইনপুট ডেটা সঠিক এনকোডিং স্ট্যান্ডার্ড মেনে তৈরি হওয়া অত্যন্ত জরুরি।

যেগুলোর উত্তর আমরা সবচেয়ে বেশি দিই।

ইউআরএলে %20 বা %3D এর মতো অক্ষর থাকে কেন?

ওয়েব ব্রাউজারে ইউআরএল পাঠানোর সময় কিছু নির্দিষ্ট নিয়ম মানতে হয়। স্পেস বা বিশেষ চিহ্ন সরাসরি ইউআরএলে ব্যবহার করা যায় না। তাই ব্রাউজার স্পেসকে %20 এবং সমান চিহ্নকে (=) %3D হিসেবে পরিবর্তন করে। ইউআরএল ডিকোড টুল ব্যবহার করে এই কোডগুলোকে আবার সাধারণ টেক্সটে রূপান্তর করা যায়।

আমি কি একটি সম্পূর্ণ কুয়েরি স্ট্রিং বা লম্বা ইউআরএল ডিকোড করতে পারব?

হ্যাঁ, আপনি সম্পূর্ণ ইউআরএল বা শুধু কুয়েরি স্ট্রিং কপি করে ইউআরএল ডিকোড টুলে পেস্ট করতে পারেন। এটি স্বয়ংক্রিয়ভাবে সমস্ত পার্সেন্ট এনকোডেড অংশগুলো শনাক্ত করে এবং পড়ার উপযোগী টেক্সটে পরিণত করে। এসইও (SEO) এবং ডিজিটাল মার্কেটিংয়ের কাজে ট্র্যাকিং লিংক বিশ্লেষণ করতে এটি খুব কার্যকর।

প্লাস (+) চিহ্নকে স্পেস হিসেবে ডিকোড করার অপশনটি কখন ব্যবহার করা উচিত?

অনেক সময় ওয়েব ফর্ম সাবমিট করার পর ব্রাউজার স্পেসের বদলে প্লাস (+) চিহ্ন ব্যবহার করে ডেটা পাঠায়। আপনি যদি ফর্ম ডেটা বা এমন কোনো কুয়েরি স্ট্রিং নিয়ে কাজ করেন যেখানে স্পেসের বদলে প্লাস ব্যবহার করা হয়েছে, তখন এই অপশনটি চালু রাখতে হবে। সাধারণ লিংকের ক্ষেত্রে এটি বন্ধ রাখাই ভালো।

ভুল বা অবৈধ কোড যেমন %ZZ থাকলে টুলটি কী করবে?

ইউআরএল ডিকোড টুলটি শুধুমাত্র সঠিক হেক্সাডেসিমেল ফরম্যাট ডিকোড করতে পারে। যদি %ZZ এর মতো কোনো ভুল বা অবৈধ সিকোয়েন্স থাকে, তবে টুলটি সাধারণত একটি এরর মেসেজ দেখাবে অথবা সেই অংশটিকে কোনো পরিবর্তন না করেই রেখে দেবে।

ইউআরএল এনকোড এবং ডিকোড করার মধ্যে মূল পার্থক্য কী?

এনকোডিং হলো সাধারণ টেক্সট বা বিশেষ অক্ষরগুলোকে ওয়েবে ব্যবহারের উপযোগী পার্সেন্ট ফরম্যাটে রূপান্তর করা। অন্যদিকে, ডিকোডিং হলো সেই এনকোড করা ইউআরএল থেকে পুনরায় পড়ার উপযোগী সাধারণ টেক্সট ফিরে পাওয়া। আপনি চাইলে ইউআরএল এনকোড টুল ব্যবহার করে যেকোনো টেক্সটকে লিংকের জন্য প্রস্তুত করতে পারেন।

ইউআরএল ডিকোড এবং বেস৬৪ ডিকোডের কাজ কি একই?

না, এদের কাজ সম্পূর্ণ আলাদা। ইউআরএল ডিকোড মূলত ওয়েব ঠিকানার বিশেষ অক্ষরগুলো সাধারণ টেক্সটে রূপান্তর করে। আর বেস৬৪ হলো ডেটা বা ফাইলকে টেক্সট স্ট্রিংয়ে রূপান্তর করার একটি পদ্ধতি। বেস৬৪ ডেটা পড়তে হলে আপনাকে বেস৬৪ ডিকোড টুল ব্যবহার করতে হবে।

বাংলা টেক্সট বা অক্ষর দিয়ে তৈরি ইউআরএল কি ডিকোড করা সম্ভব?

অবশ্যই সম্ভব। বাংলা বা অন্য যেকোনো ভাষার অক্ষর ইউআরএলে থাকলে তা ইউটিএফ ৮ (UTF-8) ফরম্যাটে এনকোড হয়ে যায়। আমাদের টুলটি এই ধরনের মাল্টি বাইট ইউটিএফ ৮ সিকোয়েন্স সহজেই ডিকোড করে মূল বাংলা টেক্সট ফিরিয়ে দিতে সক্ষম।