الترميز

HTML Entities Encode/Decode

ترميز وفك ترميز كيانات HTML — عرض آمن للأحرف الخاصة في الصفحة.

HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like &lt; or &amp;. This tool encodes and decodes such entities right in your browser.

How to use it

Common uses

Things to keep in mind

HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.

Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.

مقالة عن هذه الأداة: HTML Entities: كيف تعرض الأحرف الخاصة بأمان

الأسئلة الشائعة

ما الفرق بين الكيانات المسمّاة والكيانات الرقمية في HTML؟

الكيان المسمّى مثل &amp; يستخدم اسمًا مختصرًا سهل القراءة، بينما الكيان الرقمي مثل &#38; أو &#x26; يشير إلى الحرف عبر رمزه العددي (عشري أو سداسي عشري). كلاهما يُعرَض بنفس الطريقة في المتصفح.

لماذا أحتاج لترميز الأحرف الخاصة قبل عرضها في صفحة HTML؟

لأن أحرفًا مثل < و> و& لها معنى خاص في بنية HTML، فإذا وُضعت كما هي في المحتوى قد يفسّرها المتصفح كوسم أو كود بدلًا من نص عادي، مما يكسر الصفحة أو يفتح ثغرات مثل XSS.

ما الفرق بين وضعي "أساسية" و"جميع الأحرف"؟

الوضع الأساسي يرمّز فقط الأحرف الحرجة لبنية HTML مثل < و> و& وعلامات الاقتباس، بينما وضع جميع الأحرف يحوّل أيضًا الأحرف غير ASCII إلى كياناتها المقابلة إن وُجدت.

هل يجب الهروب من النص داخل سمة (attribute) بطريقة مختلفة عن نص الصفحة؟

الأحرف الأساسية (<، >، &) تُهرَب بنفس الطريقة، لكن داخل سمة محاطة بعلامات اقتباس يصبح من الضروري أيضًا الهروب تحديدًا من نوع علامة الاقتباس المستخدم لإحاطة السمة — وإلا "تنكسر" القيمة قبل الأوان.

هل يحمي الهروب من أحرف HTML من جميع أنواع XSS؟

لا. فهو يسدّ أشيع المسارات — إدراج نص داخل محتوى HTML — لكنه لا يحمي من XSS عبر سياق JavaScript (مثل استخدام innerHTML مع تنفيذ كود لاحق) أو عناوين URL غير المُتحقَّق منها في href أو src.

مقالات: الترميز

Base64: ما فائدة الترميز وكيف يعمل

كيف يحوّل Base64 البيانات الثنائية إلى نص ASCII، ومتى نحتاج ذلك فعلاً.

Base32: ما الفرق بينه وبين Base64 ومتى يكون أنسب

أبجدية Base32 التي لا تميّز بين حالة الأحرف، والحالات التي تكون فيها أنسب من Base64.

URL Encode/Decode: الترميز بالنسبة المئوية في الروابط

كيف تتحول الأحرف الخاصة في العناوين والمعاملات إلى تسلسلات %XX.

JWT: بنية الرمز وماذا يعني "فك ترميز" JWT

الأجزاء الثلاثة لرمز JWT، ولماذا فك الترميز ليس نفس التحقق من التوقيع.

Unicode Escape: ماذا تعني تسلسلات \uXXXX

من أين تأتي تسلسلات مثل \u0041 في JSON وسلاسل جافاسكريبت، وماذا تعني.

ROT13 وشيفرة قيصر: استبدال بسيط للأحرف

لماذا تجعل إزاحة 13 حرفًا خوارزمية ROT13 عكسية ذاتيًا، ولماذا لا تزال تُستخدم اليوم.

Punycode: كيف تعمل النطاقات الدولية في DNS

كيف يتحول نطاق بأحرف غير لاتينية إلى صيغة ASCII تبدأ بالبادئة xn--.

شيفرة مورس: كيف يتحول النص إلى نقاط وشرطات

مبدأ ترميز الحروف كنقاط وشرطات، وأين لا تزال شيفرة مورس تُستخدم اليوم.

Data URI: متى تُضمَّن الصور مباشرة في الكود

كيف يضمّن Data URI محتوى الملف مباشرة في HTML أو CSS، ومتى يستحق ذلك العناء.

Gzip + Base64: ضغط البيانات لنقلها كنص

لماذا تُرمَّز البيانات الثنائية المضغوطة أيضًا بـ Base64 قبل وضعها في حقل نصي.

XML Entities: الهروب من الأحرف في مستندات XML

الكيانات الخمس الإلزامية في XML التي بدونها يتعطّل المستند أثناء التحليل.