স্পেস, চিহ্ন ও বিশেষ অক্ষর URL ভেঙে দেয় — পার্সেন্ট-এনকোডিং সেটা ঠিক করে। যেকোনো URL নিরাপদে পাঠানোর জন্য এনকোড করুন, অথবা তা পড়ার উপযোগী টেক্সটে তাৎক্ষণিকভাবে ডিকোড করুন।
ক্যালকুলেটর লোড হচ্ছে...
এই ক্যালকুলেটরটি কি আপনাকে সাহায্য করেছে?
URL এনকোডার/ডিকোডার কী?
URL এনকোডার/ডিকোডার সাধারণ টেক্সট এবং URL-নিরাপদ পার্সেন্ট-এনকোডেড ফরম্যাটের মধ্যে রূপান্তর করে। কোয়েরি প্যারামিটার, API রিকোয়েস্ট এবং URL রাউটিং নিয়ে কাজ করা ওয়েব ডেভেলপারদের জন্য অপরিহার্য।
এই ক্যালকুলেটর কখন ব্যবহার করবেন
আপনি স্পেস, চিহ্ন বা ASCII-বহির্ভূত অক্ষরযুক্ত কোয়েরি প্যারামিটার দিয়ে URL তৈরি করছেন
প্রকৃত বিষয়বস্তু পড়ার জন্য আপনাকে পার্সেন্ট-এনকোডেড URL ডিকোড করতে হবে
এনকোড করা হয়নি এমন বিশেষ অক্ষরের কারণে আপনার URL প্রত্যাখ্যান করছে এমন একটি API ডিবাগ করছেন
ব্যবহারের আগে পরিষ্কার করার প্রয়োজন এমন ব্যবহারকারী-জমা দেওয়া URL প্রক্রিয়া করছেন
একসাথে একাধিক URL সেগমেন্ট ব্যাচ-এনকোড বা ডিকোড করতে হবে
আপনি রিডাইরেক্ট বা কলব্যাক URL তৈরি করছেন যেখানে প্যারামিটার সঠিকভাবে এনকোড করা প্রয়োজন
ধাপসমূহ:
এনকোড বা ডিকোড করতে চান এমন টেক্সট/URL টাইপ করুন বা পেস্ট করুন।
JavaScript-এ কোয়েরি প্যারামিটারের জন্য encodeURIComponent() ব্যবহার করুন
পাঠযোগ্যতার জন্য ব্যবহারকারীদের দেখানোর আগে URL ডিকোড করুন
এড়ানোর সাধারণ ভুলসমূহ
ভুলবশত URL-এ ডাবল-এনকোডিং করা
ভুল প্রসঙ্গে ভুল এনকোডিং ব্যবহার করা (URL বনাম HTML)
ভুলে যাওয়া যে কোয়েরি স্ট্রিংয়ে + স্পেস বোঝায় কিন্তু পাথ সেগমেন্টে নয়
মূল শব্দ ব্যাখ্যা
URL এনকোডিং: নিরাপদ URL-এর জন্য পার্সেন্ট-এনকোডিং
পার্সেন্ট-এনকোডিং: % এর পরে হেক্স কোড
কোয়েরি স্ট্রিং: URL-এ ? এর পরে প্যারামিটার
সংরক্ষিত অক্ষর: URL-এ বিশেষ অর্থবিশিষ্ট অক্ষর
সম্পর্কিত ধারণা
পার্সেন্ট-এনকোডিং: নিরাপদ URL পাঠানোর জন্য অনিরাপদ অক্ষরকে % এবং তারপরে দুই-অঙ্কের হেক্সাডেসিমেল ASCII কোড দিয়ে প্রতিস্থাপন করার পদ্ধতি
কোয়েরি স্ট্রিং: ? অক্ষরের পরে URL-এর অংশ, যা & অক্ষর দ্বারা বিভক্ত কী-ভ্যালু জোড়া ধারণ করে
সংরক্ষিত অক্ষর: RFC 3986 অনুযায়ী URL সিনট্যাক্সে বিশেষ অর্থবিশিষ্ট :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, =-এর মতো অক্ষর
URL-নিরাপদ অক্ষর: URL-এ এনকোডিংয়ের প্রয়োজন নেই এমন অসংরক্ষিত অক্ষর (অক্ষর, সংখ্যা, -, _, ., ~)
encodeURIComponent বনাম encodeURI: JavaScript ফাংশন, যেখানে encodeURIComponent পৃথক মানের জন্য অক্ষর, সংখ্যা ও _*-.~ ছাড়া সবকিছু এনকোড করে, অন্যদিকে encodeURI সম্পূর্ণ URL-এর জন্য URL কাঠামোর অক্ষর সংরক্ষণ করে
এনকোডার URL-এর অনিরাপদ অক্ষরগুলোকে (স্পেস, &, ?, #, ASCII-বহির্ভূত ইত্যাদি) পার্সেন্ট-এনকোডেড ফরম্যাটে রূপান্তর করে, যেখানে প্রতিটি অক্ষর হয়ে যায় % এবং তারপরে দুই-অঙ্কের হেক্সাডেসিমেল কোড। ডিকোডার এই প্রক্রিয়া বিপরীত করে মূল পঠনযোগ্য টেক্সট পুনরুদ্ধার করে। অক্ষর গণনা আপনাকে নিশ্চিত করতে সাহায্য করে যে এনকোডিং আপনার ইনপুট অপ্রত্যাশিতভাবে ডুপ্লিকেট বা কেটে দেয়নি।
কম্পোনেন্ট মোড অক্ষরের বিস্তৃত সেট এনকোড করে এবং পৃথক কোয়েরি প্যারামিটার মান এনকোড করার জন্য ডিজাইন করা হয়েছে। URL মোড কী এনকোড হবে সে বিষয়ে কঠোর এবং সম্পূর্ণ URL পাথ বা পুরো URL এনকোড করার জন্য ডিজাইন করা হয়েছে। কোয়েরি স্ট্রিং তৈরি করার সময় কম্পোনেন্ট মোড ব্যবহার করুন এবং সম্পূর্ণ URL এনকোড করার সময় URL মোড ব্যবহার করুন।
ব্যাচ মোড আপনাকে একসাথে একাধিক লাইন এনকোড বা ডিকোড করতে দেয়, যা প্রক্রিয়াজাত করার জন্য URL বা প্যারামিটারের তালিকা থাকলে কাজে লাগে। প্রতিটি লাইনকে আলাদা ইনপুট হিসেবে গণ্য করা হয় এবং সব ফলাফল সহজে কপি করার জন্য একসাথে দেখানো হয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
URL-এর এনকোডিং কেন প্রয়োজন?
URL-এ কেবল নির্দিষ্ট কিছু ASCII অক্ষর থাকতে পারে। স্পেস, &, ?, #-এর মতো অক্ষর এবং ASCII-বহির্ভূত অক্ষরগুলিকে এনকোড করতে হবে (পার্সেন্ট-এনকোডিং), যাতে ইন্টারনেটে নিরাপদে পাঠানো যায়।
পার্সেন্ট-এনকোডিং কী?
পার্সেন্ট-এনকোডিং-এ অনিরাপদ অক্ষরকে % চিহ্ন এবং তারপরে দুই-অঙ্কের হেক্সাডেসিমেল কোড দিয়ে প্রতিস্থাপন করা হয়। যেমন, স্পেস হয়ে যায় %20 এবং & হয়ে যায় %26।
URL এনকোডিং কি HTML এনকোডিংয়ের মতো?
না। URL এনকোডিং (পার্সেন্ট-এনকোডিং) URL-এর জন্য। HTML এনকোডিং-এ &-এর জন্য & বা <-এর জন্য <-এর মতো এন্টিটি ব্যবহার হয়। ওয়েব ডেভেলপমেন্টে এদের উদ্দেশ্য ভিন্ন।
কখন কম্পোনেন্ট মোডের বদলে URL মোড ব্যবহার করব?
একটি একক কোয়েরি প্যারামিটারের মান এনকোড করার সময় (যেমন, একটি সার্চ শব্দ) কম্পোনেন্ট মোড ব্যবহার করুন। সম্পূর্ণ URL পাথ এনকোড করার সময় বা পুরো স্ট্রিং URL-এর জন্য নিরাপদ হওয়ার প্রয়োজন হলে URL মোড ব্যবহার করুন। কম্পোনেন্ট মোড বেশি অক্ষর এনকোড করে কারণ এটি ধরে নেয় মানটি URL কাঠামোর ভেতরে বসানো হবে।
কেন 'Hello World' এনকোড করলে 'Hello+World'-এর বদলে 'Hello%20World' পাওয়া যায়?
URL পাথ সেগমেন্টে স্পেস %20 হিসেবে এনকোড হয়। স্পেসের জন্য + এনকোডিং কেবল application/x-www-form-urlencoded ডেটায় (HTML ফর্ম সাবমিশন) ব্যবহৃত হয়। আধুনিক সেরা অনুশীলন হলো URL-এ ধারাবাহিকভাবে %20 ব্যবহার করা। ক্যালকুলেটর URL এনকোডিংয়ের জন্য %20 ব্যবহার করে।
আমি কি ইমোজি বা উচ্চারণচিহ্নযুক্ত অক্ষরের মতো ASCII-বহির্ভূত অক্ষর এনকোড করতে পারি?
হ্যাঁ। ASCII-বহির্ভূত অক্ষর প্রথমে UTF-8 বাইটে রূপান্তরিত হয়, তারপর প্রতিটি বাইট পার্সেন্ট-এনকোড হয়। যেমন, ইমোজি ☺ (U+1F600) হয়ে যায় %F0%9F%98%80। é (U+00E9)-এর মতো উচ্চারণচিহ্নযুক্ত অক্ষর হয়ে যায় %C3%A9। এটি RFC 3986-এ সংজ্ঞায়িত মানক পদ্ধতি।
এটার সাথে HTML এন্টিটি এনকোডিংয়ের পার্থক্য কী?
URL এনকোডিং (পার্সেন্ট-এনকোডিং) URL-এর জন্য — এটি অক্ষরকে %XX হেক্স কোডে রূপান্তর করে। HTML এন্টিটি এনকোডিং অক্ষরকে নামযুক্ত বা সংখ্যাসূচক এন্টিটিতে রূপান্তর করে, যেমন &-এর জন্য & বা €-এর জন্য €। এরা সম্পূর্ণ ভিন্ন উদ্দেশ্যে কাজ করে এবং পরস্পর বদলানো যায় না।
কিছু URL-এ বিশেষ অক্ষর থাকা সত্ত্বেও কেন এনকোডিং ছাড়াই কাজ করে?
আধুনিক ব্রাউজারগুলো আপনি URL-এ নেভিগেট করলে বা ফর্ম সাবমিট করলে স্বয়ংক্রিয়ভাবে URL এনকোড করে। তবে আপনি যখন প্রোগ্রামেটিকভাবে URL তৈরি করেন (কোড, API কল বা সার্ভার-সাইড রিডাইরেক্টে), আপনাকে ম্যানুয়ালি এনকোড করতে হবে, কারণ সার্ভার আপনার জন্য সেটা করবে না।
ডাবল-এনকোডিংয়ের ঝুঁকি আছে কি?
হ্যাঁ। আপনি যদি ইতিমধ্যে এনকোড করা URL-কে এনকোড করেন, %20 হয়ে যায় %2520, যা ভুল। আবার এনকোড করার আগে সবসময় পরীক্ষা করুন আপনার ইনপুট আগে থেকেই এনকোড করা আছে কি না। এই ক্যালকুলেটর ডিকোড করা আউটপুট দেখায়, যাতে আপনি নিশ্চিত করতে পারেন ফলাফল সঠিক।
JavaScript-এ এনকোড করা URL কীভাবে সামলাব?
ডিকোড করার জন্য decodeURIComponent() এবং পৃথক মান এনকোড করার জন্য encodeURIComponent() ব্যবহার করুন। সম্পূর্ণ URL-এর জন্য decodeURI() এবং encodeURI() ব্যবহার করুন, যা URL কাঠামোর অক্ষর (/, ?, # ইত্যাদি) সংরক্ষণ করে। কখনও escape() বা unescape() ব্যবহার করবেন না — এগুলো অবচিত এবং Unicode সঠিকভাবে সামলাতে পারে না।