# এনকোড / ডিকোড

URL: https://discuvr.org/encode-decode/?hl=bn
Last updated: 2026-11-07
MCP tool: `encode_decode_text`

টাইপ করার সাথে সাথে Base64, Base64URL, URL পার্সেন্ট-এনকোডিং, HTML এনটিটি ও hex এনকোড বা ডিকোড করুন। পূর্ণ UTF-8, প্যাডিং না থাকলে জানায়, কিছুই সংরক্ষণ হয় না।

লগে একটি টোকেন, রিডাইরেক্টে কুয়েরি স্ট্রিং, &amp; ভরা একটি ইমেল: কাজে এনকোড করা টেক্সট সব জায়গায় দেখা যায়। এখানে পেস্ট করুন, ফরম্যাট বেছে নিন, আর টাইপ করার সাথে সাথে এনকোড বা ডিকোড করা ফল দেখুন।

## এটি কী করে

- Base64, Base64URL (JWT ধাঁচের, প্যাডিং ছাড়া), URL পার্সেন্ট-এনকোডিং, HTML এনটিটি ও hex.
- পূর্ণ UTF-8: বাংলা, হিন্দি, চীনা অক্ষর ও ইমোজি আসা-যাওয়ায় অক্ষত থাকে।
- Base64-এর বাদ পড়া প্যাডিং যোগ করা হয় এবং জানানো হয়, কখনো চুপচাপ ঠিক করা হয় না।
- যে বাইট টেক্সট নয় সেগুলো এলোমেলো অক্ষরের বদলে hex-এ দেখানো হয়।
- এক ক্লিকে আউটপুটকে আবার ইনপুট করে দিক উল্টে দিন।

## এটি যেভাবে কাজ করে

1. ফরম্যাট বেছে নিন এবং এনকোড না ডিকোড করবেন ঠিক করুন।
2. আপনার টেক্সট পেস্ট করুন - টাইপ করার সাথে ফল আপডেট হয়।
3. আউটপুট কপি করুন বা পরের ইনপুট হিসেবে ব্যবহার করুন।

## উদাহরণ: একটি JWT পড়া

JSON Web Token হলো ডট দিয়ে জোড়া তিনটি Base64URL অংশ: হেডার, পেলোড ও সিগনেচার। মাঝের অংশটি পেস্ট করুন, Base64URL বেছে ডিকোড করুন, তাহলে JSON ক্লেম দেখবেন, যেমন ইউজার id ও exp মেয়াদ শেষের সময় (একটি Unix টাইমস্ট্যাম্প, যা Unix টাইমস্ট্যাম্প কনভার্টারে পড়া যায়)। ডিকোড করা মানে যাচাই নয়: JWT-এর পেলোড যে কেউ পড়তে পারে, আর সার্ভারে সিগনেচার যাচাই-ই প্রমাণ করে এটি বদলানো হয়নি।

## কাজে যেসব ক্ষেত্রে সমস্যা হয়

প্যাডিং বাদ দেওয়া Base64, যা কিছু সিস্টেম জায়গা বাঁচাতে করে, কড়া ডিকোডারে ব্যর্থ হয়; এই টুল বাদ পড়া = চিহ্ন যোগ করে এবং আপনাকে জানায়। অনেক সার্ভার কুয়েরি স্ট্রিংয়ের + কে স্পেস হিসেবে পড়ে, তাই লিংকে এনকোড ছাড়া পেস্ট করা Base64 মান নষ্ট হয়ে পৌঁছায়; এটিকে URL কম্পোনেন্ট হিসেবে এনকোড করুন বা Base64URL ব্যবহার করুন। দুবার এনকোড করা টেক্সট %2520 বা &amp;amp; হিসেবে দেখা যায় এবং দুবার ডিকোড করতে হয়।

## প্রতিটি ডিকোডার কী গ্রহণ করে

Base64 ডিকোডিং স্পেস ও লাইন ব্রেক উপেক্ষা করে, তাই ইমেইলের মতো কয়েক লাইনে ভাঙা মান যেমন পেস্ট করা হয়েছে তেমনই ডিকোড হয়। Base64URL ডিকোডিং + ও / ও গ্রহণ করে, কিন্তু সাধারণ Base64 - ও _ প্রত্যাখ্যান করে, তাই JWT-এর অংশের জন্য Base64URL বিকল্প লাগে। Hex ডিকোডিং স্পেস, কোলন, কমা, ড্যাশ ও 0x প্রিফিক্স বাদ দেয়, তাই 48:65:6c:6c:6f এবং 0x48 0x65 দুটোই কাজ করে। URL ডিকোডিং + কে স্পেসে বদলায়, তাই আসল প্লাস চিহ্ন %2B হিসেবে আসতে হবে। HTML এনকোডিং পাঁচটি অক্ষর & < > " ও ' এস্কেপ করে; HTML ডিকোডিং &nbsp; ও &hellip;-এর মতো প্রতিটি HTML5 নামযুক্ত এনটিটি এবং রুপি চিহ্নের জন্য &#8377;-এর মতো সংখ্যাসূচক এনটিটি বোঝে।

## সমাধান করা উদাহরণ: প্রতিটি ফরম্যাট কী তৈরি করে

এখানে URL এনকোডিং একটি মাত্র মান এনকোড করে, যেমন একটি কোয়েরি প্যারামিটার, তাই প্রতিটি সংরক্ষিত অক্ষর এস্কেপ হয়: https://example.com/a b?x=1&y=2 হয়ে যায় https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2. লিংকে যে মানটি বসাচ্ছেন শুধু সেটিই এনকোড করুন, পুরো লিংক কখনও নয়. ASCII-এর বাইরের টেক্সট তার UTF-8 বাইট হিসেবে এনকোড হয়: café ₹ হয়ে যায় caf%C3%A9%20%E2%82%B9, আর হেক্স একই বাইট দেখায়, é হলো c3 a9 এবং ₹ হলো e2 82 b9. user:pass-এর Base64 হলো dXNlcjpwYXNz, এই মানটিই HTTP Basic Authorization হেডারে থাকে (RFC 7617), তাই যে কেউ সেই হেডার দেখলে পাসওয়ার্ড পড়তে পারে.

## প্রশ্নাবলী

**আমার ডিকোড করা টেক্সটে Ã© এর মতো অদ্ভুত অক্ষর কেন?**

বাইটগুলো UTF-8 ছিল, কিন্তু এনকোড হওয়ার আগে কোথাও Latin-1 বা Windows-1252 হিসেবে পড়া হয়েছিল। এখানে ডিকোড বাইটগুলো যেমন আছে তেমনই দেখায়; সমাধান সেই সিস্টেমে, যেটি এগুলো তৈরি করেছে।

**আমি কি পুরো একটি ফাইল ডিকোড করতে পারি?**

২,০০,০০০ অক্ষর পর্যন্ত টেক্সট পেস্ট করুন। ছবির মতো বাইনারি ফাইলের ডিকোড করা বাইট ডাউনলোডে পরিণত না করে hex-এ দেখানো হয়।

**Base64 কি এনক্রিপশন?**

না। Base64 শুধু বাইট লেখার ধরন বদলায়, যাতে সাধারণ টেক্সট আশা করা সিস্টেম পার হতে পারে। যে কেউ এটি ডিকোড করতে পারে; পাসওয়ার্ড বা গোপন তথ্য লুকাতে কখনো এটি ব্যবহার করবেন না।

**Base64 আর Base64URL-এর পার্থক্য কী?**

Base64URL "+" ও "/" এর বদলে "-" ও "_" ব্যবহার করে এবং সাধারণত "=" প্যাডিং বাদ দেয়, ফলে ফল URL ও ফাইলের নামে নিরাপদ থাকে। JSON Web Token এটি ব্যবহার করে।

**আমার টেক্সট কি সংরক্ষণ হয়?**

না। একই অনুরোধে রূপান্তর করে ফেরত দেওয়া হয় এবং কখনো ডেটাবেস বা লগে লেখা হয় না।

**URL-এনকোড করা আউটপুট JavaScript-এর encodeURIComponent থেকে আলাদা কেন?**

এই টুল ! ' ( ) এবং * অক্ষরগুলোও এস্কেপ করে, যেগুলো encodeURIComponent যেমন আছে তেমনই রাখে, তাই it's (50%) off! হয়ে যায় it%27s%20%2850%25%29%20off%21. দুটি রূপই ডিকোড করলে একই টেক্সট দেয়, আর কোয়েরি মানের ভেতরে এই অক্ষরগুলো এস্কেপ করা সবসময় নিরাপদ. স্পেস হয় %20, + নয়; + রূপটি আসে HTML ফর্ম এনকোডিং থেকে, এবং এখানকার ডিকোডার দুটোই পড়তে পারে.

**কমান্ড লাইনে টেক্সট Base64-এ এনকোড বা ডিকোড করব কীভাবে?**

Linux বা Mac-এ echo -n 'Hello, World' | base64 দিলে SGVsbG8sIFdvcmxk পাওয়া যায়, আর echo 'SGVsbG8sIFdvcmxk' | base64 --decode সেটিকে আবার টেক্সটে ফেরায়। -n বাদ দিলে echo একটি নতুন লাইন যোগ করে যা সঙ্গে এনকোড হয়, ফলে আসে SGVsbG8sIFdvcmxkCg==: দুটি টুলের ফল না মেলার সবচেয়ে সাধারণ কারণ এটাই। PowerShell-এ [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World')) এনকোড করে এবং [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIFdvcmxk')) ডিকোড করে। এই পেজ আপনি যা পেস্ট করেন ঠিক সেই অক্ষরগুলোই UTF-8-এ এনকোড করে, কোনো নতুন লাইন যোগ করে না।

**Base64 ছবি বা data URI কীভাবে ডিকোড করব?**

শুধু কমার পরের অংশটি পেস্ট করুন: data:image/png;base64,iVBORw0KGgo... এর মধ্যে সেটি হলো iVBORw0KGgo..., কারণ data:image/png;base64, প্রিফিক্সটি Base64 নয় এবং পুরো স্ট্রিং বাতিল হয়ে যায়। Base64 আর Decode বেছে নিন। যে বাইটগুলো টেক্সট নয় সেগুলো ছবি হিসেবে না এঁকে hex আকারে দেখানো হয়, আর ফাইলটা কী তা বোঝার জন্য সেটাই যথেষ্ট: PNG শুরু হয় 89 50 4e 47 দিয়ে, JPEG ff d8 ff দিয়ে, আর পুরো একটি .docx, .xlsx বা অন্য ZIP-ভিত্তিক ফাইল 50 4b 03 04 দিয়ে। ছবিটি নিজে দেখতে পুরো data URI ব্রাউজারের অ্যাড্রেস বারে পেস্ট করুন। ইনপুটের সীমা 2,00,000 অক্ষর, অর্থাৎ প্রায় 1,50,000 বাইটের ফাইল।

**Base64 মূলের চেয়ে প্রায় এক-তৃতীয়াংশ লম্বা হয় কেন?**

Base64 প্রতি 3 বাইটকে 4টি অক্ষরে লেখে এবং শেষ গ্রুপটিকে 4-এর গুণিতক পর্যন্ত = দিয়ে পূরণ করে (RFC 4648), তাই আউটপুট ইনপুট বাইটের 4/3, ঊর্ধ্বমুখে পূর্ণসংখ্যা করা। Hello, World হলো 12 বাইট এবং 16 অক্ষরের SGVsbG8sIFdvcmxk হয়। গোনা হয় UTF-8 বাইট, অক্ষর নয়: café 4টি অক্ষর কিন্তু 5 বাইট এবং Y2Fmw6k= হয়, আর ₹100 হলো 6 বাইট এবং 4oK5MTAw হয়। বাংলার প্রতিটি অক্ষর UTF-8-এ 3 বাইট নেয়, তাই বাংলা টেক্সটের Base64 অক্ষর গণনার চেয়ে অনেক লম্বা হয়। ইমেইল অ্যাটাচমেন্ট আরও একটু বাড়ে, কারণ MIME Base64-কে সর্বোচ্চ 76 অক্ষরের লাইনে ভাঙে (RFC 2045); এই পেজ ডিকোড করার সময় সেই লাইন ব্রেকগুলো উপেক্ষা করে। প্যাডিং ছাড়া Base64URL শুধু = চিহ্নগুলো বাঁচায়।

## ডেভেলপার টুল-এ আরও

- [Unix টাইমস্ট্যাম্প কনভার্টার](https://discuvr.org/timestamp-converter/?hl=bn)
- [সিস্টেম ডায়াগ্রাম মেকার](https://discuvr.org/system-diagram/?hl=bn)
- [JSON ফরম্যাটার](https://discuvr.org/json-formatter/?hl=bn)
- [Python ফরম্যাটার](https://discuvr.org/python-formatter/?hl=bn)

## প্রায়ই এগুলোর সঙ্গে ব্যবহৃত হয়

- [পাসওয়ার্ড জেনারেটর](https://discuvr.org/password-generator/?hl=bn)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
