টেক্সটকে বাইনারি, হেক্সাডেসিমেল, অক্টাল বা ডেসিমেলে রূপান্তর করুন এবং আবার ডিকোড করুন। UTF-8 সচেতন, কনফিগারযোগ্য সেপারেটর এবং জিরো প্যাডিংসহ। সম্পূর্ণরূপে আপনার ব্রাউজারে চলে।
টেক্সটকে বাইনারি, হেক্স, অক্টাল বা ডেসিমেলে রূপান্তর করুন - এবং আবার ফিরে। দুটি প্যানই সম্পাদনাযোগ্য, তাই আপনি টেক্সট এনকোড করতে পারেন বা ডিকোড করার জন্য একটি এনকোডেড স্ট্রিং পেস্ট করতে পারেন। এনকোডিং UTF-8 বাইট ভিত্তিক, যার অর্থ স্বরযুক্ত অক্ষর, CJK অক্ষর এবং ইমোজি সবই রাউন্ড ট্রিপে টিকে থাকে।
টেক্সট কীভাবে বাইটে পরিণত হয়
অক্ষর বাইট নয়
একটি অক্ষর একটি বিমূর্ত ধারণা; একটি বাইট হলো আট বিটের স্টোরেজ। একটিকে অন্যটিতে রূপান্তর করতে একটি এনকোডিং প্রয়োজন। এই টুল UTF-8 ব্যবহার করে, যে এনকোডিং ওয়েবের 98%-এর বেশি পিছনে রয়েছে। UTF-8-এ ASCII পরিসর A-Z, a-z, 0-9 এবং সাধারণ বিরামচিহ্ন ঠিক একটি বাইট নেয়, তাই A হলো 01000001। স্বরযুক্ত ল্যাটিন এবং গ্রিক দুই বাইট নেয়, বেশিরভাগ CJK অক্ষর তিন বাইট নেয়, এবং ইমোজি চার বাইট নেয়।
রাউন্ড ট্রিপের জন্য এটি কেন গুরুত্বপূর্ণ
পুরোনো টেক্সট-থেকে-বাইনারি টুলগুলো charCodeAt কল করে এবং 8 বিটে ছেঁটে দেয়। এটি সাধারণ ASCII-র জন্য কাজ করে এবং বাকি সবকিছু নীরবে নষ্ট করে, তাই é একটি ভিন্ন অক্ষর বা একটি প্রতিস্থাপন গ্লিফ হিসাবে ফিরে আসে। যেহেতু এই কনভার্টার প্রকৃত UTF-8 বাইট এনকোড করে, চীনা অক্ষর এবং একটি ইমোজি সম্বলিত একটি স্ট্রিং ঠিক যা দিয়ে শুরু করেছিলেন তাতে ডিকোড হয়।
একটি বেস নির্বাচন
বাইনারি কাঁচা বিট প্যাটার্ন দেখায়, যা এনকোডিং কীভাবে কাজ করে তা ব্যাখ্যা করার সময় বা বিট-স্তরের প্রোটোকল ডিবাগ করার সময় আপনি চান।
হেক্সাডেসিমেল হলো কার্যত ডিফল্ট। প্রতি বাইটে দুটি হেক্স অঙ্ক বাইট সীমানা স্পষ্ট করে, তাই প্রতিটি হেক্স এডিটর এবং নেটওয়ার্ক ডাম্প এটি ব্যবহার করে।
অক্টাল একবারে তিনটি বিট গোষ্ঠী করে এবং প্রধানত ইউনিক্স অনুমতি এবং কিছু C এস্কেপ সিকোয়েন্সে দেখা যায়।
ডেসিমেল উচ্চস্বরে পড়তে সবচেয়ে সহজ কিন্তু বিট কাঠামো সম্পূর্ণ লুকিয়ে রাখে।
সেপারেটর এবং প্যাডিং
জিরো প্যাডিং প্রতিটি বাইটকে একই প্রস্থ করে - বাইনারিতে আট অক্ষর, হেক্সে দুই - তাই মানগুলোর মধ্যে কোনো সেপারেটর না থাকলেও আউটপুট নির্ভরযোগ্যভাবে ভাগ করা যায়। আপনি যদি প্যাডিং বন্ধ করেন, একটি সেপারেটর রাখুন, অন্যথায় 1 এবং 10 মিলে যায় এবং ফলাফলটি দ্ব্যর্থহীনভাবে ডিকোড করা যায় না। ডিকোড করার সময় স্পেস, কমা এবং নতুন লাইনের যেকোনো মিশ্রণ গ্রহণ করা হয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
আমার চীনা অক্ষর কেন আট বিটের তিনটি গোষ্ঠী?
UTF-8 বেশিরভাগ CJK অক্ষরকে তিন বাইটে এনকোড করে, এবং প্রতিটি বাইট একটি আট-বিট গোষ্ঠী হয়। এটি সঠিক আচরণ, ত্রুটি নয়।
আমি কি সেপারেটরবিহীন বাইনারি ডিকোড করতে পারি?
হ্যাঁ, যতক্ষণ এটি জিরো-প্যাডেড ছিল। ডিকোডার সেপারেটর না পেলে নির্দিষ্ট-প্রস্থ স্লাইসিং-এ ফিরে যায় - বাইনারিতে প্রতি বাইটে আট অক্ষর, হেক্সে দুই।
এটি কি ASCII নাকি UTF-8 ব্যবহার করে?
UTF-8। সাধারণ ASCII পরিসরের জন্য দুটি অভিন্ন, তাই ইংরেজি টেক্সট উভয় ক্ষেত্রেই একই দেখায়, কিন্তু UTF-8 অন্য প্রতিটি অক্ষরও সঠিকভাবে সামলায়।
আমার ইনপুট ডিকোড করতে কেন ত্রুটি পাই?
প্রতিটি গোষ্ঠীকে নির্বাচিত বেসে 0 থেকে 255 এর মধ্যে একটি মানে পার্স করতে হবে। 256 এর একটি মান, বাইনারি মোডে একটি ছিটকে পড়া অক্ষর, বা ভুল বেস নির্বাচন - সবই এটি ট্রিগার করবে।
এটি কি Base64 এর মতোই?
না। Base64 ডেটা সংক্ষিপ্ত রাখতে তিন বাইটকে চারটি মুদ্রণযোগ্য অক্ষরে প্যাক করে। এই টুল প্রতিটি বাইটকে একটি নির্বাচিত সংখ্যাসূচক বেসে আলাদাভাবে রেন্ডার করে, যা অনেক বেশি ভারবোজ কিন্তু মানব-পাঠযোগ্য।
আমার টেক্সট কি কোথাও পাঠানো হয়?
না। এনকোডিং এবং ডিকোডিং উভয়ই ব্রাউজারের বিল্ট-ইন TextEncoder এবং TextDecoder ব্যবহার করে, সম্পূর্ণরূপে আপনার মেশিনে।