টেক্সটকে ইউনিকোড কোড পয়েন্ট, HTML এনটিটি বা JavaScript এস্কেপ সিকোয়েন্সে রূপান্তর করুন এবং আবার ডিকোড করুন। সম্পূর্ণ অ্যাস্ট্রাল-প্লেন এবং ইমোজি সমর্থন।
টেক্সটকে ইউনিকোড কোড পয়েন্টে রূপান্তর করুন এবং আবার ফিরে। HTML এনটিটি, JavaScript এস্কেপ বা U+ নোটেশন বেছে নিন। দুটি প্যানই সম্পাদনাযোগ্য, এবং Basic Multilingual Plane-এর বাইরের অক্ষরগুলো - প্রতিটি ইমোজিসহ - সারোগেট পেয়ার নয়, বরং একক কোড পয়েন্ট হিসাবে পরিচালিত হয়।
কোড পয়েন্ট, এনকোডিং এবং সারোগেট পেয়ার
একটি কোড পয়েন্ট বাইট নয়
ইউনিকোড প্রতিটি অক্ষরকে একটি সংখ্যা দেয় যাকে কোড পয়েন্ট বলে, যা U+ এবং তারপর হেক্সাডেসিমেল অঙ্ক দিয়ে লেখা হয়। A হলো U+0041, 蜂 হলো U+8702, এবং মধুমক্ষিকা ইমোজি হলো U+1F41D। সেই সংখ্যাটিই অক্ষরের পরিচয়। এটি কীভাবে সংরক্ষিত হয় - UTF-8, UTF-16, UTF-32 - তা একটি আলাদা সিদ্ধান্ত, তাই এই টুলটি টেক্সট-থেকে-বাইনারি কনভার্টার থেকে ভিন্ন।
সারোগেট পেয়ার ফাঁদ
JavaScript স্ট্রিংগুলো UTF-16। U+FFFF এর উপরের কোড পয়েন্টগুলো সারোগেট পেয়ার নামে দুটি 16-বিট অর্ধে সংরক্ষিত হয়। charCodeAt দিয়ে লুপ করা নিষ্পাপ কোড একটি ইমোজিকে 0xD800-0xDFFF এর কাছাকাছি দুটি অর্থহীন মান হিসাবে দেখে এবং "🐝".length কে 2 হিসাবে রিপোর্ট করে। এই কনভার্টার কোড পয়েন্ট অনুযায়ী ইটারেট করে, তাই মৌমাছি ইমোজিটি দুটি ভাঙা অর্ধ নয়, একটি মান U+1F41D উৎপন্ন করে।
চারটি আউটপুট ফরম্যাট
HTML ডেসিমেল এনটিটি - A। যেকোনো HTML ডকুমেন্টে এবং XML-এ কাজ করে।
HTML হেক্স এনটিটি - A। একই জিনিস হেক্সাডেসিমেলে, যা ইউনিকোড চার্ট যেভাবে লেখা হয় তার সাথে মেলে।
JavaScript এস্কেপ - \u0041। সোর্স কোডের স্ট্রিং লিটারেলের জন্য। U+FFFF এর উপরে ব্রেসড ফর্ম \u{1F41D} প্রয়োজন, এবং টুল এটি স্বয়ংক্রিয়ভাবে নির্গত করে।
কোড পয়েন্ট নোটেশন - U+0041। স্পেসিফিকেশন এবং ডকুমেন্টেশনে ব্যবহৃত ফর্ম।
ব্যবহারিক ব্যবহার
অ-ASCII টেক্সটকে এনটিটি হিসাবে এস্কেপ করলে এটি এনকোডিং নষ্ট করে এমন সিস্টেমে টিকে থাকতে পারে, যেমন পুরোনো ইমেইল গেটওয়ে বা ভুল কনফিগার করা ডেটাবেস। কোড পয়েন্ট পরীক্ষা করা অদৃশ্য অক্ষর নির্ণয়ের দ্রুততম উপায়ও: একটি জিরো-প্রস্থ স্পেস (U+200B) বা একটি নন-ব্রেকিং স্পেস (U+00A0) স্ক্রিনে সাধারণ স্পেসের মতো দেখায় কিন্তু স্ট্রিং তুলনা ভেঙে দেয়। সন্দেহজনক টেক্সট এখানে পেস্ট করুন এবং পার্থক্যটি সঙ্গে সঙ্গে দেখা যাবে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
একটি ইমোজি কেন দুটি মানের বদলে একটি U+1F41D উৎপন্ন করে?
টুলটি UTF-16 কোড ইউনিট নয়, কোড পয়েন্ট অনুযায়ী ইটারেট করে। ইমোজি U+FFFF এর উপরে থাকে, তাই নিষ্পাপ অক্ষর লুপগুলো তাদের সারোগেট পেয়ারে ভাগ করে; এটি তা করে না।
এটি এবং টেক্সট-থেকে-বাইনারি টুলের মধ্যে পার্থক্য কী?
এই টুল কোড পয়েন্ট দেখায়, প্রতিটি অক্ষরের বিমূর্ত পরিচয়। বাইনারি টুল সেগুলো সংরক্ষণ করতে ব্যবহৃত UTF-8 বাইট দেখায়। একটি অক্ষর একটি কোড পয়েন্ট হতে পারে কিন্তু তিন বাইট।
আমি কি ফরম্যাটের মিশ্রণ ডিকোড করতে পারি?
হ্যাঁ। ডিকোডার একই ইনপুটে &#..;, &#x..;, \uXXXX, \u{...} এবং U+.... শনাক্ত করে, এবং এস্কেপের মধ্যে থাকা যেকোনো টেক্সট যেমন আছে তেমনই সংরক্ষিত থাকে।
স্ট্রিংয়ে অদৃশ্য অক্ষর কীভাবে খুঁজে পাব?
এটি পেস্ট করুন এবং U+ নোটেশনে স্যুইচ করুন। জিরো-প্রস্থ স্পেস U+200B, নন-ব্রেকিং স্পেস U+00A0 এবং বাইট-অর্ডার চিহ্ন U+FEFF হিসাবে দেখায় - সবই স্ক্রিনে অদৃশ্য কিন্তু এখানে স্পষ্ট।
HTML এনটিটি কি সরাসরি পেজে রাখা নিরাপদ?
হ্যাঁ, সংখ্যাসূচক অক্ষর রেফারেন্স HTML এবং XML-এ বৈধ। লক্ষ্য করুন যে তারা কেবল অক্ষরগুলো নিজেদেরই এস্কেপ করে; অবিশ্বস্ত কন্টেন্টে <, > এবং & এর সঠিক HTML এস্কেপিংয়ের বিকল্প নয়।
কিছু কি আমার ব্রাউজার ছেড়ে যায়?
না। রূপান্তর সম্পূর্ণরূপে স্থানীয়ভাবে সম্পাদিত শুদ্ধ স্ট্রিং ম্যানিপুলেশন।