HTML Encoder

HTML Encoder / Decoder

`& < > " '` কে নিরাপদ HTML entity-তে escape করুন, অথবা entity-escaped টেক্সট আবার plain-এ ডিকোড করুন। চারটি এনকোডিং স্তর — Minimal, Named, Numeric, All non-ASCII। UTF-8 + emoji + CJK নিরাপদ, আপনার ব্রাউজারেই।

ডিফল্ট হিসেবে Minimal ব্যবহার করুন — শুধু & < > " ' escape করুন, এই পাঁচটি অক্ষর HTML body / attribute কনটেক্সট ভেঙে দেয়। প্রতিটি আধুনিক টেমপ্লেটিং ইঞ্জিন এটাই করে। যদি copyright / nbsp / arrow ইত্যাদি পঠনযোগ্য কোড হিসেবে চান (&#169; এর বদলে &copy;) তাহলে Named entity ব্যবহার করুন। যেসব পাইপলাইন named entity বুঝতে পারে না সেখানে HTML পাঠানোর সময় Numeric ব্যবহার করুন। কঠোর ASCII-only সিস্টেমের (legacy ইমেইল সার্ভার, ভাঙা API) জন্য All non-ASCII ব্যবহার করুন।

&apos; XML এবং HTML5-এ বৈধ, কিন্তু HTML 4.01-এ না — পুরোনো ব্রাউজার এটিকে আক্ষরিক টেক্সট ' হিসেবে রেন্ডার করে। সংখ্যাসূচক রেফারেন্স &#39; সর্বত্র কাজ করে। সামঞ্জস্যের জন্য ডিকোডার &apos; কে ইনপুট হিসেবে গ্রহণ করে।

ইনপুট
আউটপুট

নিরাপদ HTML আউটপুটের জন্য তৈরি

টেমপ্লেটের জন্য ব্যবহারকারী কনটেন্ট escape করুন, entity-এনকোডেড ডেটা ডিকোড করুন — সঙ্গে কিছু ছোট ছোট স্পর্শ যা ব্যবহার সত্যিই উপভোগ্য করে তোলে।

চারটি এনকোডিং মোড

Minimal শুধু পাঁচটি HTML-অনিরাপদ অক্ষর (& < > " ') escape করে — সাধারণ ইউজার-জেনারেটেড কনটেন্টের জন্য সঠিক ডিফল্ট। Named যেখানে সম্ভব পঠনযোগ্য HTML5 entity যেমন &copy; / &nbsp; / &hearts; ব্যবহার করে। Numeric প্রতিটি non-ASCII codepoint কে &#NN; হিসেবে এনকোড করে। All non-ASCII printable ASCII-র বাইরের প্রতিটি codepoint এনকোড করে — legacy / ASCII-only পাইপলাইনের জন্য।

যেকোনো entity ডিকোড

ডিকোডার named entity (&copy;), decimal numeric (&#169;), এবং hex numeric (&#xA9;) সবই হ্যান্ডেল করে। Surrogate-pair codepoint (emoji, প্রাচীন স্ক্রিপ্ট) UTF-16 এর মাধ্যমে সঠিকভাবে round-trip হয়।

লাইভ প্রিভিউ

প্রতিটি কী-স্ট্রোকে আউটপুট আপডেট হয় — কোনো Encode / Decode বোতাম চাপতে হয় না। এক ক্লিকে দিক বদলান; Swap বোতাম আউটপুটকে আবার ইনপুটে পাঠায় যাতে আপনি রূপান্তর শৃঙ্খল করতে পারেন।

UTF-8 + emoji + CJK নিরাপদ

প্রতিটি Unicode codepoint round-trip হয়: 中文, العربية, русский, हिंदी, 🎉, Þorgeir। এনকোডার per-codepoint iteration ব্যবহার করে (charAt নয়), তাই surrogate pair অক্ষত থাকে।

ডিজাইনে গোপনীয়তা

আপনার টেক্সট আপনার ডিভাইসেই থাকে। এনকোডার, ডিকোডার, named-entity টেবিল সব JavaScript হিসেবে স্থানীয়ভাবে চলে। DevTools → Network খুলে শূন্য outbound request যাচাই করুন।

ছোট + দ্রুত

বিশুদ্ধ JavaScript, কোনো framework runtime নেই। কোল্ড লোড 25 KB gzipped-এর কম। 100 KB HTML নথি 5 ms-এর কমে এনকোড হয়।

কীভাবে HTML entity এনকোড বা ডিকোড করবেন

কাঁচা টেক্সট থেকে entity-নিরাপদ আউটপুট পর্যন্ত চারটি ধাপ।

  1. 1

    আপনার টেক্সট পেস্ট করুন

    Plain টেক্সট বা HTML Input প্যানে ফেলুন। যেকোনো কিছু চলবে — ব্যবহারকারীর মন্তব্য, ব্লগ পোস্ট, emoji, CJK, RTL স্ক্রিপ্ট। এনকোডার codepoint ধরে iterate করে তাই multi-byte সিকোয়েন্স অক্ষত থাকে।

  2. 2

    দিক + মোড নির্বাচন করুন

    Direction Encode (টেক্সট → entity) বা Decode (entity → টেক্সট)-এ সেট করুন। Encode-এর জন্য মোড বেছে নিন: টেমপ্লেটের জন্য Minimal, পঠনযোগ্য entity-র জন্য Named, non-ASCII কে &#NN; হিসেবে পেতে Numeric, ASCII-only আউটপুটের জন্য All non-ASCII

  3. 3

    লাইভ প্রিভিউ দেখুন

    প্রতিটি কী-স্ট্রোকে আউটপুট আপডেট হয়। ড্রপডাউন বদলে রিয়েল টাইমে মোড তুলনা করুন। আউটপুটকে আবার ইনপুটে পাঠাতে Swap ব্যবহার করুন — round-trip যাচাইয়ের জন্য উপযোগী (encode তারপর decode = মূল)।

  4. 4

    কপি বা ডাউনলোড

    ফলাফল ক্লিপবোর্ডে পাঠাতে কপি আইকন ব্যবহার করুন, অথবা output.encode.html / output.decode.txt হিসেবে সংরক্ষণ করতে ডাউনলোড আইকন ব্যবহার করুন। আকারের পার্থক্য (অক্ষর / বাইট ইন → আউট) দেখায় এনকোডিং কতটা টেক্সট বাড়িয়েছে বা কমিয়েছে।

দৈনিক ওয়েব-ডেভ কাজের জন্য তৈরি

চারটি সাধারণ পরিস্থিতি যেখানে গোপনীয়তা-প্রথম ব্রাউজার টুল এলোমেলো কোনো অনলাইন এনকোডারে কোড পেস্ট করার চেয়ে ভালো।

টেমপ্লেটে ব্যবহারকারীর কনটেন্ট নিরাপদে এম্বেড করা

ব্যবহারকারীর মন্তব্য, ফর্ম প্রতিক্রিয়া, সার্চ কোয়েরি — বাইরে থেকে আসা যেকোনো কিছু যা <p>, <li> বা attribute-এ যায়। আপনার HTML-এ স্ট্রিং-কনক্যাটেনেট করার আগে Minimal-mode এনকোডের মধ্যে দিয়ে চালান, ভাঙা মার্কআপ ও সরলতম XSS payload থেকে নিরাপদ থাকবেন।

API থেকে entity-escaped ডেটা পড়া

কিছু API ইতিমধ্যে entity-escaped স্ট্রিং ফেরত দেয় (RSS feed, কিছু CMS এক্সপোর্ট, scraped HTML)। পেস্ট করুন, Decode চাপুন, মূল Unicode ফেরত পাবেন। ডিকোডার named, decimal এবং hex entity হ্যান্ডেল করে — surrogate pair সহ।

ইমেইল সাবজেক্ট লাইন + meta ট্যাগ

<title>, <meta name="description">, <meta property="og:title"> — সব বিশেষ অক্ষরের জন্য entity escape দরকার। আপনার শিরোনাম একবার এনকোড করুন, তিনটিতেই পেস্ট করুন।

সংবেদনশীল কনটেন্ট যা থার্ড-পার্টি সার্ভিসে যেতে পারে না

অভ্যন্তরীণ CMS কনটেন্ট, গ্রাহক ডেটা, NDA-সুরক্ষিত টেমপ্লেট — ক্লাউড এনকোডারে পেস্ট করা যায় না এমন কিছু। শুধু-ব্রাউজার টুল প্রতিটি বাইট আপনার ল্যাপটপে রাখে। DevTools → Network খুলে যাচাই করুন কিছুই বের হচ্ছে না।

১০০% প্রাইভেট — আপনার ব্রাউজারে চলে

আপনার টেক্সট কখনো আপনার ডিভাইস ছাড়ে না। DevTools → Network খুলুন, এনকোড বা ডিকোডের সময় শূন্য outbound request দেখতে পাবেন।

  • এনকোডার, ডিকোডার এবং named-entity লুকআপ টেবিল সব আপনার মেশিনে JavaScript হিসেবে চলে — কোনো সার্ভার-সাইড রূপান্তর নেই, কোনো থার্ড-পার্টি API নেই।
  • Surrogate-pair codepoint (emoji, প্রাচীন স্ক্রিপ্ট) byte-level mapping নয়, codepoint iteration দিয়ে হ্যান্ডেল করা হয় — তাই 🎉 পেস্ট করলে round-trip এর পরও 🎉 থাকে।
  • কোনো লগইন নেই, টেক্সট কনটেন্টে কোনো টেলিমেট্রি নেই। আমরা শুধু cookie-consent state-এর জন্য একটি cookie ও ভাষা পছন্দের জন্য একটি cookie ব্যবহার করি।

সম্পর্কিত গাইড

HTML escape, entity টেবিল এবং নিরাপদ টেমপ্লেটিং নিয়ে বাছাই করা পড়াশোনা।

জিজ্ঞাসিত প্রশ্ন

আমি কোন মোড বেছে নেব?

ডিফল্ট হিসেবে Minimal ব্যবহার করুন — শুধু & < > " ' escape করুন, এই পাঁচটি অক্ষর HTML body / attribute কনটেক্সট ভেঙে দেয়। প্রতিটি আধুনিক টেমপ্লেটিং ইঞ্জিন এটাই করে। যদি copyright / nbsp / arrow ইত্যাদি পঠনযোগ্য কোড হিসেবে চান (&#169; এর বদলে &copy;) তাহলে Named entity ব্যবহার করুন। যেসব পাইপলাইন named entity বুঝতে পারে না সেখানে HTML পাঠানোর সময় Numeric ব্যবহার করুন। কঠোর ASCII-only সিস্টেমের (legacy ইমেইল সার্ভার, ভাঙা API) জন্য All non-ASCII ব্যবহার করুন।

এটি `'` কে `&apos;` এর বদলে `&#39;` হিসেবে কেন escape করে?

&apos; XML এবং HTML5-এ বৈধ, কিন্তু HTML 4.01-এ না — পুরোনো ব্রাউজার এটিকে আক্ষরিক টেক্সট ' হিসেবে রেন্ডার করে। সংখ্যাসূচক রেফারেন্স &#39; সর্বত্র কাজ করে। সামঞ্জস্যের জন্য ডিকোডার &apos; কে ইনপুট হিসেবে গ্রহণ করে।

Emoji ও CJK অক্ষর কি টিকে থাকবে?

হ্যাঁ। এনকোডার codepoint iterate করে (UTF-16 code unit নয়), তাই 🎉 (U+1F389) এর মতো emoji এনকোড করলে &#127881; হয় এবং ডিকোডের মাধ্যমে সঠিকভাবে round-trip হয়। CJK-এর ক্ষেত্রেও একই (numeric মোডে 中文 → &#20013;&#25991;)।

এনকোড করার পর সরাসরি HTML-এ ব্যবহারকারী ইনপুট এম্বেড করা কি নিরাপদ?

HTML body ও attribute-এর জন্য — হ্যাঁ, Minimal মোডে। URL কনটেক্সটের জন্য (href="...") আপনার URL এনকোডিং-ও দরকার। ইনলাইন JavaScript বা CSS-এর জন্য HTML বা URL এনকোডিং — কোনোটাই যথেষ্ট নয় — এমন একটি টেমপ্লেটিং ইঞ্জিন ব্যবহার করুন যা সেই কনটেক্সটগুলো বোঝে। কখনই unescaped ব্যবহারকারী ইনপুট <script> ব্লকে পেস্ট করবেন না।

কিছু কি আপনার সার্ভারে পাঠানো হয়?

না। এনকোডার, ডিকোডার এবং named-entity লুকআপ টেবিল সব আপনার ডিভাইসে JavaScript-এ চলে। DevTools → Network খুলুন, এনকোড বা ডিকোডের সময় শূন্য outbound request দেখতে পাবেন। গোপন তথ্য, গ্রাহকের ডেটা, অভ্যন্তরীণ টেমপ্লেট পেস্ট করুন — কিছুই আপনার ল্যাপটপ ছাড়ে না।