مرمّز ومفكك كيانات HTML
من النص إلى الكيانات وبالعكس، مع شرح القواعد
- الأحرف الداخلة
- 0
- المحوَّلة
- 0
- الأحرف الخارجة
- 0
خمسة أحرف تحتاج فعلًا إلى ترميز في HTML: علامة & وقوسا الزاوية وعلامتا الاقتباس. وكل ما عدا ذلك اختيار يتعلق بهوامش الأمان.
جاهز. الصق شيئًا وسيتحول أثناء الكتابة.
الأحرف التي يحجزها HTML
خمسة أحرف تعني شيئًا للمحلل. فعلامة & تبدأ كيانًا، وقوسا الزاوية يفتحان الوسم ويغلقانه، كما تنهي علامتا الاقتباس قيمة السمة.
كل ما عدا ذلك نص عادي. لذلك يمر الحرف المشكّل والشرطة الطويلة والرمز التعبيري عبر مستند UTF-8 دون تغيير.
لهذا فالترميز أضيق مما يظن معظم الناس. ففي النص تحتاج إلى ثلاثة من الخمسة، وداخل السمة تحتاج أيضًا إلى علامة الاقتباس المطابقة.
توجد القائمة الكاملة للأسماء في معيار HTML، وتتجاوز ألفي مدخل. لكن لا يكاد أي منها يكون ضروريًا.
مسماة أو عشرية أو ست عشرية
الكيانات المسماة واضحة، لأن يخبرك بما هو. أما   فلا يخبرك إلا برقم.
الأرقام تعمل دائمًا. فلكل نقطة ترميز رقم، ولا يدخل أي جدول في الأمر، لذلك لا شيء يعتمد على معرفة المحلل باسم ما.
الست عشري هو الرقم نفسه بالأساس ستة عشر. استخدمه حين تنسخ قيمًا من جدول Unicode، لأن الجداول تطبعها بهذا الشكل.
متى ترمّز كل شيء
المستند المقدَّم بترميز UTF-8 لا يحتاج إلى كيانات للأحرف المشكّلة، لأن الأحرف مجرد أحرف. وعندها يقرؤها المتصفح بشكل صحيح.

ترميز كل ما هو خارج ASCII تأمين ضد خادم يرسل charset خاطئًا. لكنه يكبّر الملف ويجعل تحريره أصعب بكثير.
لذلك لا تلجأ إليه إلا حين لا تتحكم في الترويسات. ففي كل حالة أخرى يكون إعلان charset الصحيح هو الحل الأفضل.
الكيانات ليست تعقيمًا
ترميز النص قبل طباعته في الصفحة يمنعه من أن يصبح ترميزًا. وهذا هو التهريب، كما أن القواعد تتغير بحسب المكان: فالسمة وكتلة السكربت والرابط يحتاج كل منها إلى قاعدته.
لماذا فك الترميز هو النصف الأصعب
تحمل المستندات الحقيقية كيانات مسماة وعشرية وست عشرية، وكثيرًا منها بلا فاصلة منقوطة. لذلك يجب أن يتعامل المفكك مع الأربعة.

كما يجب أن يترك كل ما يشبه الكيان فقط. فالكلمة &foo; نص، والمفكك الذي يخمّن يفسد النثر.
يتحقق هذا المفكك من الأسماء في جدوله ومن نقاط الترميز في النطاق الصالح. لذلك يعود كل ما لا يعرفه كما كُتب تمامًا.
أين ما زالت الكيانات تظهر
تحملها قوالب البريد القديمة بالمئات. وكذلك تصديرات أنظمة إدارة المحتوى وتحويلات PDF، كما يحملها كل ما مر يومًا عبر معالج نصوص.

وتظهر أيضًا في ملفات CSV المأخوذة من صفحة ويب. فمثلًا عمود أسماء مليء بـamp وrsquo هو العلامة المعتادة.
فك ترميز مثل هذا الملف مرة واحدة يجعله مقروءًا من جديد. ثم ترى علامات الاقتباس والشرطات الشاردة التي كانت مختبئة كرموز.
ومع ذلك احتفظ بنسخة من الأصل. فإذا كانت قيمة ما يجب أن تبقى مرمّزة، ستريد إعادتها.
مشكلة المسافة غير القابلة للكسر
تُدرجها معالجات النصوص، وتبدو على الشاشة مطابقة للمسافة العادية. ثم تكسر التفاف الأسطر ومقارنات النصوص. لذلك ففك ترميز كتلة ملصوقة أسرع طريقة للعثور عليها.
كيف تستخدم مرمّز كيانات HTML
ثلاث خطوات، والنتيجة تتبع كل ضغطة مفتاح. كما يتولى زر التبديل الذهاب والإياب.
- 1
اختر اتجاهًا
الترميز يحوّل الأحرف إلى كيانات. أما فك الترميز فيعيد الكيانات أحرفًا، بما فيها التي تنقصها فاصلة منقوطة.
- 2
اختر الصيغة
مسماة حيث يوجد اسم، أو أرقام عشرية أو ست عشرية. والأرقام تعمل دائمًا، لذلك هي الإعداد الافتراضي الأكثر أمانًا للآلات.
- 3
حدّد مقدار ما يُرمَّز
اترك مفتاح ASCII مطفأً للعمل العادي. وشغّله حين يرسل الخادم charset خاطئًا ولا تستطيع إصلاح الترويسات.
- 4
انسخ، أو بدّل وتحقق
اضغط انقل النتيجة إلى خانة الإدخال فينعكس الاتجاه. ثم يجب أن يعيد التحويل مجددًا ما بدأت به تمامًا.
ما الذي يميز مرمّز كيانات HTML هذا
معظم المحوّلات تتقن اتجاهًا واحدًا وتخمّن في الآخر. أما هذه فهي الفروق التي تهم عمليًا.
يترك الأسماء المجهولة كما هي
النص الذي يشبه الكيان وليس كيانًا يبقى كما كُتب، لأن المفكك الذي يخمّن يفسد النثر بصمت.
ثلاث صيغ للمخرجات
المسماة والعشرية والست عشرية تأتي من مفتاح واحد، لذلك تطابق ما يستخدمه الملف المحيط أصلًا.
معالجة الفواصل المنقوطة الناقصة
المستندات الحقيقية تسقطها، والمتصفحات تتسامح مع الاسم المعروف. لذلك يفعل هذا المفكك الشيء نفسه بدل أن يفشل.
ذهاب وإياب قابل للعكس
بدّل اللوحتين وحوّل مجددًا. فإذا لم يعد شيء إلى نصه الأصلي، فقد وجدت خللًا في إحدى الخطوتين.
لا حيل مع DOM
يحجب هذا الموقع حيلة innerHTML المعتادة عمدًا، لذلك توجد الجداول داخل الملف ويجري كل تبديل على المكشوف.
تبقى ملفاتك في هذه العلامة
تمر أجزاء القوالب وبيانات العملاء عبر محوّلات كهذه. لذلك يبقى كل شيء هنا في متصفحك.
قواعد لترميز أحرف HTML الخاصة
التهريب من تلك المهام التي تكون فيها العادة الصحيحة أقصر من الخاطئة.
- هرّب عند الإخراج لا عند الإدخال. خزّن ما كتبه المستخدم. ثم رمّز عند الطباعة، ورمّز للمكان المحدد الذي يصل إليه النص.
- استخدم دالة إطار العمل. لكل لغة دالة، وهي تعرف أين سيصل النص. أما سلسلة الاستبدالات اليدوية فستفوّت حالة عاجلًا أو آجلًا.
- قدّم UTF-8 وأعلن عنه. عندها لا تحتاج الأحرف المشكّلة والرموز التعبيرية إلى كيانات. وفوق كل شيء، هذا هو الحل الذي يلغي المسألة كلها.
- رمّز علامتي الاقتباس داخل السمات. علامة الاقتباس المفردة تغلق سمة بين علامتين مفردتين، تمامًا كما تغلق المزدوجة سمة بين مزدوجتين. لذلك رمّز الاثنتين ولا تفكر في الأمر.
- فضّل الكيانات الرقمية في الملفات المولّدة. لا يدخل أي جدول أسماء في الأمر، لذلك لا شيء يعتمد على معرفة المحلل بكلمة. أما الأسماء فتساعد من يقرأ شيفرتك المصدرية.
- انتبه للترميز المزدوج. علامة & المرمّزة مرتين تظهر في الصفحة بشكل
&. لذلك فك الترميز مرة وانظر قبل أن ترمّز مجددًا. - ابحث عن المسافات غير القابلة للكسر في النص الملصوق. تأتي من معالجات النصوص وتكسر التفاف الأسطر. فك ترميز كتلة وستظهر الشاردة منها.
- افحص التصديرات بعد نقل نظام إدارة المحتوى. الترحيل هو المكان الذي يتسلل منه الترميز المزدوج. لذلك فك ترميز عينة من الصفحات الجديدة ثم قارنها بالقديمة.
- حافظ على الصيغة نفسها في الملف كله. خلط الأسماء والأرقام في قالب واحد يصعّب كثيرًا البحث لاحقًا عن حرف شارد.
- لا تهرّب أبدًا لتعقيم الترميز. التهريب يجعل النص آمنًا للطباعة. أما السماح ببعض الوسوم وإزالة غيرها فمهمة مختلفة تحتاج إلى معقّم حقيقي.
ستة أخطاء في الكيانات تصل إلى بيئة الإنتاج
تجتاز المراجعة لأن الصفحة تظهر سليمة. لكن الضرر يظهر في خلاصة أو تصدير أو فهرس بحث.
الترميز المزدوج
الأكثر شيوعًا. حين يهرّب القالب قيمة ثم يهرّبها إطار العمل مجددًا، يرى القارئ نص الكيان الخام.
ترميز كل شيء افتراضيًا
يضاعف حجم صفحة بالفرنسية أو الأردية ويجعل المصدر غير مقروء. لذلك أصلح charset بدلًا من ذلك.
التهريب للسياق الخطأ
تهريب HTML داخل كتلة سكربت أو معامل رابط لا يكفي. في الواقع لكل سياق قواعده الخاصة.
كيانات مسماة في XML
يعرف XML خمسة أسماء لا أكثر. لذلك فوجود
في خريطة موقع أو خلاصة RSS خطأ تحليل.نسيان علامة الاقتباس داخل السمات
تنهي السمة مبكرًا، ثم تترك بقية القيمة كترميز. وهكذا يبدأ الحقن.
الاعتماد على التهريب كضابط أمني
التهريب الصحيح يمنع الحقن عند نقطة الإخراج. لكنه لا يفعل شيئًا بشأن ما خزّنته أو ما سمحت به.
أسئلة يطرحها الناس عن الكيانات
ما الأحرف التي يجب ترميزها في HTML؟
ثلاثة في النص: علامة & وقوسا الزاوية. كما يجب داخل قيمة السمة ترميز علامة الاقتباس أيضًا، وترميز علامتي الاقتباس كلتيهما أسهل للتذكر.
الأسماء أفضل أم الأرقام؟
الأسماء أوضح في الشيفرة المصدرية. أما الأرقام فتعمل دائمًا، ولا تحتاج إلى جدول، وهي الخيار الأكثر أمانًا في ملف تولّده آلة.
هل يعمل هذا كمفكك كيانات HTML عبر الإنترنت؟
نعم، ويتعامل مع الكيانات المسماة والعشرية والست عشرية، بما فيها التي تصل بلا فاصلة منقوطة. كما تبقى الأسماء المجهولة كما كُتبت تمامًا.
لماذا أرى & في صفحتي؟
شيء ما رمّز النص مرتين. لذلك فكّه هنا مرة واحدة لترى الأصل، ثم ابحث عن الترميز الثاني في القالب أو إطار العمل.
هل أحتاج إلى كيانات للأحرف المشكّلة؟
ليس في مستند UTF-8 بسطر charset صحيح. لذلك رمّزها فقط حين لا تتحكم في طريقة إرسال الخادم للملف.
هل يمكنني استخدام هذه الكيانات في XML أو RSS؟
استخدم الرقمية. في الواقع لا يعرّف XML إلا خمسة كيانات مسماة، لذلك يكسر أي كيان آخر، بما فيه nbsp، الخلاصة.
وماذا عن أحرف HTML الخاصة في البريد الإلكتروني؟
تقرأ برامج البريد HTML بمحركات أقدم، لذلك فالكيانات الرقمية هناك هي الخيار الأكثر أمانًا. كما يجب أن تختبر في برنامج حقيقي قبل الإرسال.
هل الترميز هو نفسه التعقيم؟
لا. الترميز يجعل النص يظهر كنص. أما التعقيم فيقرر أي الوسوم يمكن أن تبقى ترميزًا، وهذه المهمة تحتاج إلى مكتبة مصممة لها.
هل يمكنني فك ترميز ملف كامل هنا؟
الصقه. تتعامل الأداة مع صفحة طويلة دون تباطؤ، كما تخبرك الأعداد بعدد الرموز التي استبدلتها.
ما الكيانات التي تكسر خلاصة RSS؟
أي كيان مسمى باستثناء الخمسة التي يعرّفها XML. والمذنب المعتاد هو nbsp، واستبداله برمز رقمي يصلح الخلاصة.
لماذا يظهر نصي بعلامات اقتباس غريبة؟
أدرج معالج نصوص علامات اقتباس منحنية ثم رمّزها شيء ما مرتين. لذلك يكفي فك الكتلة هنا مرة واحدة لتعود الأحرف الحقيقية.
هل يجب ترميز الفاصلة العليا؟
داخل سمة بين علامتي اقتباس مفردتين نعم، ومفتاح علامات الاقتباس يفعل ذلك عنك. أما في النص فالفاصلة العليا علامة ترقيم عادية، لذلك يمكن أن تبقى كما كُتبت.
لماذا بقيت علامة & دون تغيير؟
لأن المرمّز كان في وضع فك الترميز، أو لأن الحرف كان جزءًا من كيان أصلًا. لذلك غيّر الاتجاه وحوّل مجددًا لترى الفرق.
هل يُرفع أي شيء ألصقه هنا؟
لا. يعمل الاتجاهان في علامة تبويب متصفحك. لذلك لا يصل شيء إلى هذا الموقع، ولا تُحفظ أي نسخة، وإغلاق علامة التبويب يمسح كل شيء.
أدوات للعمل مع الترميز
الكيانات جزء واحد من التعامل اليدوي مع HTML. وتغطي هذه الثلاث الباقي.
تصغير HTML
اضغط الترميز، أو أعد تنسيقه ليصبح مقروءًا.
افتح الأداة ←مزيل وسوم HTML
استخرج النص الخام واحتفظ بفواصل الفقرات.
افتح الأداة ←مرمّز ومفكك Base64
رمّز البايتات لرابط data أو قيمة ترويسة.
افتح الأداة ←
هل نبدأ تحويل صورك؟
الصق كتلة، واختر اتجاهًا، وبدّل اللوحتين لتتحقق من الذهاب والإياب. مرمّز كيانات HTML مجاني، ولا يحتاج إلى حساب، ويعمل كليًا في متصفحك.