HTML এন্টিটি এনকোড / ডিকোড
এনকোডিংHTML এন্টিটি এনকোড ও ডিকোড — নামভুক্ত, দশমিক এবং হেক্সাডেসিমাল।
এই পৃষ্ঠায়
HTML এন্টিটি এনকোডিং কী?#
HTML কয়েকটি অক্ষরকে বিশেষ অর্থ দেয়: < এবং > ট্যাগ নির্দেশ করে, & একটি এন্টিটি বা ক্যারেক্টার রেফারেন্স শুরু করে, এবং " এবং ' অ্যাট্রিবিউট মান উদ্ধৃত করে। যখনই আপনি চান যে সেই অক্ষরগুলোর একটি একটি পৃষ্ঠায় আক্ষরিক টেক্সট হিসেবে উপস্থিত হবে — ব্যবহারকারীদের একটি কোড স্নিপেটের সোর্স দেখানো, একটি ফিল্ডে সার্চ ইনপুট ফিরিয়ে দেওয়া, Tom & Jerry স্ট্রিংটি প্রদর্শন করা — আপনাকে তা একটি এন্টিটি নামক স্ট্যান্ড-ইন দিয়ে প্রতিস্থাপন করতে হবে। সেই প্রতিস্থাপনটিই হলো HTML এন্টিটি এনকোডিং।
একই এস্কেপ লেখার তিনটি উপায় আছে, এবং এই টুলটি বিকল্প নির্বাচনকারীর মাধ্যমে তিনটিই অফার করে:
- নামভুক্ত —
&হয়&,<হয়<, ইত্যাদি। মানব-পঠনযোগ্য, এবং একমাত্র ফর্ম মানুষ সাধারণত নিজ হাতে টাইপ করে। এই মোডে শুধুমাত্র পাঁচটি কাঠামোগতভাবে বিপজ্জনক অক্ষর এস্কেপ করা হয়; বাকি সবকিছু অস্পর্শিত পাস করে। - দশমিক — প্রতিটি নন-ASCII বা কন্ট্রোল অক্ষর
&#N;হয়ে যায়, যেখানেNহলো তার Unicode কোড পয়েন্ট দশমিকে (উদাহরণস্বরূপ©হয়©)। ভালো যখন আপনি চান প্রতিটি অ-মানক বাইট দৃশ্যমান এবং ASCII-নিরাপদ হোক। - হেক্সাডেসিমাল — হেক্সাডেসিমাল কোড পয়েন্ট সহ একই ধারণা:
©হয়©। সংক্ষিপ্ত এবং Unicode টেবিলে আপনি যে কোড-পয়েন্ট প্রতীক দেখেন তার সাথে স্বাভাবিকভাবে মিলে যায়।
ডিকোডিং একটি সংকলিত HTML5 সাবসেটে নামভুক্ত এন্টিটিগুলোকে চেনে, এবং &#NN; (দশমিক) ও &#xHH; (হেক্স)। একটি অচেনা নামভুক্ত এন্টিটিকে অনুমান করার বদলে হুবহু রেখে দেওয়া হয় — নীরবে ভুল অক্ষর নির্গত করার চেয়ে নিরাপদ।
ব্যবহারবিধি#
- উপরের বাম দিকের টগল থেকে এনকোড বা ডিকোড বেছে নিন।
- বিকল্প-এর অধীনে, নামভুক্ত, দশমিক, বা হেক্সাডেসিমাল বেছে নিন।
- বাঁদিকের ইনপুট পেইনে পেস্ট করুন।
- ডানদিকের আউটপুট পেইন থেকে এস্কেপ করা (বা আনএস্কেপ করা) ফলাফল পড়ুন এবং কপি ক্লিক করুন।
- নমুনা একটি প্রদর্শন স্ট্রিং লোড করে; মুছুন পেইনগুলো রিসেট করে।
মূল বৈশিষ্ট্য#
- এক নির্বাচনকারী থেকে তিনটি এস্কেপ শৈলী। পুনরায় না পেস্ট করেই নামভুক্ত, দশমিক এবং হেক্সের মধ্যে স্যুইচ করুন, যা আউটপুট তুলনা করা তুচ্ছ করে তোলে।
- অ্যাস্ট্রাল-অক্ষর সঠিক। পুনরাবৃত্তি Unicode কোড পয়েন্ট অনুসারে হয়, UTF-16 কোড ইউনিট অনুসারে নয়, তাই
🌍-এর মতো একটি ইমোজি একটি অক্ষর হিসেবে গণ্য হয় (🌍), সারোগেটের একটি ভাঙা জোড় হিসেবে নয়। - সংকলিত, নিরাপদ ডিকোডার। নামভুক্ত-এন্টিটি ম্যাপ সাধারণ HTML5 রেফারেন্সগুলো কভার করে (কপিরাইট, ট্রেডমার্ক, অ্যাকসেন্টযুক্ত অক্ষর, গাণিতিক প্রতীক, উদ্ধৃতি এবং ড্যাশ)। অজানা নামগুলো বিকৃত হওয়ার বদলে অস্পর্শিত পাস করে।
- কোনো DOM জড়িত নয়। এনকোডিং এবং ডিকোডিং বিশুদ্ধ স্ট্রিং অপারেশন — কোনো লুকানো
<div>ইনজেকশন নেই — তাই লজিকটি সম্পূর্ণ পরীক্ষাযোগ্য এবং টুলটি নিজে আপনার ইনপুটকে মার্কআপ হিসেবে ব্যাখ্যা করার কোনো ঝুঁকি নেই।
ব্যবহারিক উদাহরণ#
এমন একটি ফ্র্যাগমেন্ট নিন যা মার্কআপকে একটি আক্ষরিক প্রতীকের সাথে মেলায়:
<a href="x">Tom & Jerry</a> © 2026
নামভুক্ত মোডে, শুধুমাত্র পাঁচটি বিপজ্জনক অক্ষর এস্কেপ করা হয় এবং ©-কে একা রাখা হয় (এটি কাঠামোগতভাবে বিপজ্জনক নয়):
<a href="x">Tom & Jerry</a> © 2026
দশমিক-এ স্যুইচ করুন এবং ©-ও তার কোড পয়েন্ট হয়ে যায়, যখন মূল অক্ষরগুলো সংখ্যাসূচক ফর্মে স্যুইচ করে:
<a href="x">Tom & Jerry</a> © 2026
হেক্সাডেসিমাল মোডে একই অক্ষরগুলো হেক্সাডেসিমাল কোড পয়েন্ট হিসেবে উপস্থিত হয়:
<a href="x">Tom & Jerry</a> © 2026
ডিকোডিং এর সবগুলোকে উল্টোদিকে ফেরায়: তিনটি আউটপুটের যেকোনো একটি ডিকোড নির্বাচন করে ফিরিয়ে পেস্ট করুন এবং আপনি © সহ মূল ফ্র্যাগমেন্টটি পাবেন।
প্রশ্নোত্তর#
একটি স্ট্রিংকে HTML-এর ভেতরে বসাতে নিরাপদ করতে আমার কোন মোড ব্যবহার করা উচিত?#
পাঁচটি বিপজ্জনক অক্ষরের জন্য নামভুক্ত প্রায় সবসময়ই সঠিক ডিফল্ট — এটি পঠনযোগ্য, প্রতিটি ব্রাউজারে ভালোভাবে বোঝা যায়, এবং আউটপুটকে diff-বান্ধব রাখে। যখন আপনি বিশেষভাবে প্রতিটি নন-ASCII অক্ষরকে ASCII-নিরাপদ করতে চান তখন দশমিক বা হেক্সাডেসিমাল ব্যবহার করুন (উদাহরণস্বরূপ, এমন একটি ট্রান্সপোর্টের জন্য কন্টেন্ট প্রস্তুত করা যা উচ্চ বাইট প্রত্যাখ্যান করে), সাধারণ এস্কেপিংয়ের জন্য নয়।
আমি © ডিকোড করেছি কিন্তু &mytag;-এর মতো একটি অদ্ভুত নাম অপরিবর্তিত এসেছে। কেন?#
ডিকোডার শুধুমাত্র সেই এন্টিটিগুলোই সমাধান করে যা সে আসলে জানে — সাধারণ নামগুলোর একটি সংকলিত HTML5 সাবসেট। &mytag; একটি প্রকৃত HTML এন্টিটি নয়, তাই টুলটি অনুমান বা বাদ দেওয়ার বদলে তা অস্পর্শিত রাখে। আপনার যদি সত্যিই প্রতিটি DTD-সংজ্ঞায়িত এন্টিটি সমাধান করা প্রয়োজন, আপনি একটি স্ট্রিং কনভার্টারের সুযোগের বাইরে এবং প্রকৃত HTML পার্সিংয়ে আছেন।
HTML-এস্কেপিং কি একটি JavaScript স্ট্রিং বা একটি URL-এ ব্যবহারকারীর ইনপুট নিরাপদ করার জন্য যথেষ্ট?#
না। প্রতিটি প্রসঙ্গের নিজস্ব নিয়ম আছে। HTML এস্কেপিং মার্কআপ ইনজেকশনের বিরুদ্ধে রক্ষা করে, কিন্তু '); alert(1); //-এর মতো একটি স্ট্রিং HTML-এ নিরীহ এবং একটি <script>-এর ভেতরে বিপজ্জনক। একই ইনপুটটির একটি লিঙ্কে যাওয়ার আগে URL-এনকোডিংও প্রয়োজন। গন্তব্য প্রসঙ্গের জন্য এস্কেপ করুন, শুধু একবার নয়।
হেক্স আউটপুট কেন ছোট-হাতের অক্ষর ব্যবহার করে (© নয় ©)?#
ছোট-হাতের হেক্স হলো প্রচলিত, পরিপাটি ফর্ম এবং প্রতিটি ব্রাউজার দ্বারা অভিন্নভাবে পার্স করা হয়। আপনার যদি একটি স্টাইল গাইডের জন্য বড়-হাতের প্রয়োজন হয়, দশমিক মোড (©) প্রশ্নটি সম্পূর্ণ এড়িয়ে যায়, অথবা আউটপুটটি আপনার নিজের কেস ট্রান্সফর্মের মাধ্যমে চালান।