ভাষা বেছে নিন

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

নিরাপদ ইউআরএল তৈরির জন্য টেক্সটকে পার্সেন্ট-এনকোড করুন। কম্পোনেন্ট বা ফুল-ইউআরএল মোড ব্যবহার করুন এবং স্পেসকে '+' হিসেবে এনকোড করার সুবিধা পান।

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

ইউআরএল এনকোডিং কেন প্রয়োজন?

ইন্টারনেট বা ওয়েব দুনিয়ায় ডেটা আদান-প্রদানের জন্য ইউআরএল একটি নির্দিষ্ট নিয়ম মেনে চলে। RFC 3986 স্ট্যান্ডার্ড অনুযায়ী, ইউআরএল-এ কেবল নির্দিষ্ট কিছু আস্কি (ASCII) ক্যারেক্টার বা অক্ষর ব্যবহার করা যায়। এর মধ্যে কিছু অক্ষর রয়েছে যেগুলোকে "রিজার্ভড" বা সংরক্ষিত বলা হয়, যেমন ?, &, /, =, এবং :। এই ক্যারেক্টারগুলো ইউআরএল-এর গঠন এবং ডেটা পার্সিংয়ের কাজ করে। অন্যদিকে আনরিজার্ভড ক্যারেক্টার যেমন ইংরেজি বর্ণমালা (A-Z, a-z), সংখ্যা (0-9) এবং হাইফেন, আন্ডারস্কোর, ডট ও টিল্ডা (-, _, ., ~) সরাসরি ব্যবহার করা যায়।

যদি আপনার ডেটার ভেতরেই সংরক্ষিত ক্যারেক্টার থাকে, তবে ব্রাউজার বা সার্ভার বিভ্রান্ত হতে পারে। এই সমস্যা সমাধানের জন্যই ইউআরএল এনকোডার টুলটি ব্যবহার করা হয়। এটি পার্সেন্ট-এনকোডিং পদ্ধতির মাধ্যমে অনিরাপদ বা বিশেষ ক্যারেক্টারগুলোকে নিরাপদ ফরম্যাটে রূপান্তর করে। উদাহরণস্বরূপ, একটি সাধারণ টেক্সটে যদি & থাকে, এনকোড করার পর সেটি %26 হয়ে যায়। ওয়েব ডেভেলপার এবং এসইও বিশেষজ্ঞদের জন্য সঠিকভাবে ইউআরএল তৈরি করা অত্যন্ত জরুরি, কারণ ইউআরএল এনকোডিং নিশ্চিত করে যে আপনার লিংকের ১০০% ডেটা নিরাপদে সার্ভারে পৌঁছাবে। এনকোড করা ডেটা আবার আগের অবস্থায় বা মানুষের পড়ার উপযোগী ফরম্যাটে ফিরিয়ে আনতে ইউআরএল ডিকোড টুলটি কাজে লাগে।

সম্পূর্ণ ইউআরএল বনাম কম্পোনেন্ট এনকোডিং

ইউআরএল এনকোডার টুলে সাধারণত দুটি মোড থাকে, যা জাভাস্ক্রিপ্টের encodeURI এবং encodeURIComponent ফাংশনের কাজের সাথে সামঞ্জস্যপূর্ণ। যখন আপনি একটি সম্পূর্ণ ইউআরএল এনকোড করতে চান, তখন ফুল-ইউআরএল মোড ব্যবহার করা হয়। এই মোডে ইউআরএল-এর কাঠামোগত ক্যারেক্টারগুলো যেমন http:// এর কোলন বা স্ল্যাশ, অথবা কোয়েরি স্ট্রিংয়ের ? এবং = অপরিবর্তিত থাকে। এটি কেবল সেই ক্যারেক্টারগুলোকে এনকোড করে যেগুলো পুরো লিংকটির গঠন নষ্ট করতে পারে।

অন্যদিকে, কম্পোনেন্ট মোডটি মূলত ইউআরএল-এর নির্দিষ্ট কোনো অংশ বা কোয়েরি প্যারামিটারের ভ্যালু এনকোড করার জন্য ব্যবহৃত হয়। আপনি যদি কোনো প্যারামিটারের মান হিসেবে অন্য একটি লিংক বা বিশেষ ক্যারেক্টারযুক্ত টেক্সট পাঠাতে চান, তবে কম্পোনেন্ট মোড বেছে নিতে হবে। এই মোডে /, ?, &, এবং = এর মতো ক্যারেক্টারগুলোও পার্সেন্ট-এনকোড হয়ে যায়। ভুল মোড নির্বাচন করলে লিংক ব্রোকেন হয়ে যেতে পারে বা সার্ভার ত্রুটি দেখাতে পারে। ডিজিটাল মার্কেটাররা যখন বিভিন্ন ক্যাম্পেইনের জন্য ইউটিএম (UTM) লিংক তৈরি করেন, তখন এই কম্পোনেন্ট এনকোডিং খুব গুরুত্বপূর্ণ ভূমিকা পালন করে। অনেক সময় অফলাইন মার্কেটিংয়ের জন্য এসব জটিল লিংক দিয়ে কিউআর কোড তৈরি করা হয়, যেখানে সঠিক এনকোডিং থাকা আবশ্যক।

স্পেস বা ফাঁকা স্থান এনকোড করা: %20 এবং + এর পার্থক্য

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

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

বাংলা এবং অন্যান্য ইউনিকোড ক্যারেক্টারের এনকোডিং

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

একটি বাংলা অক্ষর সাধারণত তিন বাইটের হয়ে থাকে, তাই এনকোড করার পর এটি তিনটি পার্সেন্ট-চিহ্নিত ব্লকে বিভক্ত হয়। উদাহরণস্বরূপ, বাংলা 'অ' অক্ষরটি এনকোড হয়ে %E0%A6%85 আকার ধারণ করে। এসইও বিশেষজ্ঞরা যখন বাংলায় ইউআরএল বা স্লাগ তৈরি করেন, তখন ব্যাকএন্ডে এই এনকোডিং প্রক্রিয়াটিই কাজ করে। আন্তর্জাতিকীকরণ বা ইন্টারন্যাশনালাইজড ডোমেইন নেম (IDN) এবং পাথের ক্ষেত্রে এই কনভার্শনটি সঠিকভাবে হওয়া অত্যন্ত জরুরি। কোনো ডেটাকে বাইনারি বা টেক্সট ফরম্যাটে সুরক্ষিত রাখতে অনেক সময় বেস৬৪ এনকোড পদ্ধতিও ব্যবহৃত হয়, তবে ওয়েব লিংকের জন্য পার্সেন্ট-এনকোডিংই আদর্শ।

ইউআরএল এনকোডিং নিয়ে সচরাচর জিজ্ঞাসিত প্রশ্ন

পার্সেন্ট-এনকোডিং কী? পার্সেন্ট-এনকোডিং হলো এমন একটি পদ্ধতি যেখানে ইউআরএল-এর জন্য অযোগ্য বা সংরক্ষিত ক্যারেক্টারগুলোকে একটি % চিহ্ন এবং তার সাথে দুটি হেক্সাডেসিমেল ডিজিট দিয়ে প্রকাশ করা হয়। এটি ডেটাকে ব্রাউজার ও সার্ভারের কাছে বোধগম্য করে তোলে।

আমার কোয়েরি স্ট্রিংয়ে & চিহ্ন দিলে সেটি ভেঙে যায় কেন? ইউআরএল-এর গঠনে & চিহ্নটি একাধিক প্যারামিটারকে আলাদা করার কাজে ব্যবহৃত হয়। আপনি যদি কোনো প্যারামিটারের মানের ভেতরেই & ব্যবহার করেন, তবে সার্ভার সেটিকে নতুন একটি প্যারামিটারের শুরু হিসেবে ধরে নেয়। এই সমস্যা এড়াতে ইউআরএল এনকোডার ব্যবহার করে & কে %26 এ রূপান্তর করে নিতে হয়।

ইমোজি কীভাবে এনকোড করা হয়? ইমোজিগুলো মূলত ইউনিকোড ক্যারেক্টার। এনকোড করার সময় এগুলোকে প্রথমে UTF-8 বাইট সিকোয়েন্সে ভাগ করা হয় এবং পরে প্রতিটি বাইটকে পার্সেন্ট-এনকোড করা হয়। একটি সাধারণ ইমোজি এনকোড করার পর চার বা তার বেশি পার্সেন্ট-ব্লক তৈরি করতে পারে, যা ইউআরএল-এ নিরাপদে পাস করা যায়।

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

পার্সেন্ট এনকোডিং কী এবং এটি কেন প্রয়োজন?

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

কোয়েরি প্যারামিটারের ভ্যালু বসানোর জন্য আমার কোন মোডটি ব্যবহার করা উচিত?

কোয়েরি প্যারামিটার বা ফর্ম ডেটার ক্ষেত্রে আপনার কম্পোনেন্ট (Component) মোডটি নির্বাচন করা উচিত। এই মোডটি ব্যবহার করলে স্ল্যাশ (/), প্রশ্নবোধক চিহ্ন (?) এবং সমান চিহ্নের (=) মতো সংরক্ষিত ক্যারেক্টারগুলো সম্পূর্ণভাবে এনকোড হয়ে যায়। এর ফলে প্যারামিটারের ভেতরের কোনো ডেটা মূল ইউআরএলের স্ট্রাকচারকে বাধাগ্রস্ত করতে পারে না।

আমার ইউআরএলে থাকা '&' চিহ্নটি কেন কোয়েরি স্ট্রিং ভেঙে দিচ্ছে?

সাধারণত ইউআরএলে '&' চিহ্নটি একাধিক কোয়েরি প্যারামিটারকে আলাদা করার জন্য ব্যবহৃত হয়। যদি আপনার প্যারামিটারের ভ্যালুর ভেতরেই একটি '&' থাকে এবং সেটি এনকোড করা না হয়, তবে ব্রাউজার সেটিকে নতুন প্যারামিটারের শুরু হিসেবে ধরে নেয়। ইউআরএল এনকোডার ব্যবহার করে এটিকে '%26' হিসেবে রূপান্তর করে নিলে এই সমস্যাটি আর হয় না। প্রয়োজনে ডিকোড করতে ইউআরএল ডিকোড টুল ব্যবহার করতে পারেন।

স্পেস এনকোড করার সময় কখন '%20' এবং কখন '+' ব্যবহার করব?

সাধারণ ইউআরএল পাথ বা ফাইলের নামের ক্ষেত্রে স্পেস বোঝাতে '%20' ব্যবহার করা হয়। তবে ফর্ম সাবমিশন বা কোয়েরি স্ট্রিংয়ের ক্ষেত্রে স্পেসকে '+' চিহ্ন দিয়ে প্রকাশ করা একটি পুরনো রীতি। আমাদের টুলে আপনার প্রয়োজন অনুযায়ী স্পেসকে '+' হিসেবে এনকোড করার অপশন রয়েছে।

বাংলা বর্ণমালা বা ইমোজি কীভাবে এনকোড করা হয়?

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

ফুল ইউআরএল (Full URL) মোড কখন ব্যবহার করা হয়?

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