مُطبِّع Unicode

قد تُخزَّن السلسلة النصية المرئية نفسها على شكل تسلسلات بايت مختلفة، بحسب ما إذا كانت النبرة موجودة كنقطة ترميز واحدة أم كحرف مع علامة دمج. يحوّل هذا المُطبِّع النص بين أشكال التطبيع الأربعة في Unicode (NFC وNFD وNFKC وNFKD)، كي تُقارَن سلاسلك بنظافة في قواعد البيانات وفهارس البحث وبرامج إزالة التكرار ومطابقات التعبيرات النمطية (regex).

كيفية تطبيع نص Unicode

  1. 1

    الصق مُدخلك

    الصق السلسلة: حروف بعلامات تشكيل، أو نص CJK، أو حروف مركّبة، أو أي شيء يبدو غير متسق.

  2. 2

    اختر شكلا

    اختر NFC (مركّب، شكل الويب المعتاد)، أو NFD (مفكَّك)، أو NFKC (مركّب توافقي)، أو NFKD (مفكَّك توافقي).

  3. 3

    قارن الأعداد

    تبلّغ الأداة بعدد الأحرف (نقاط الترميز) وطول البايت قبل وبعد، كي ترى إن كان الشكل قد قصّر السلسلة أم أطالها.

  4. 4

    انسخ الناتج المطبَّع

    استخدم النتيجة في قاعدة بياناتك، أو حمولة واجهة برمجة التطبيقات (API)، أو مولّد الـ slug، أو تجهيزة الاختبار.

الأشكال الأربعة ومتى يُستخدم كل منها

تطبيع Unicode مُعرَّف في الملحق المعياري UAX #15. وتختلف الأشكال الأربعة على محورين: قانوني مقابل توافقي، ومركّب مقابل مفكَّك.

مرجع جنبا إلى جنب

الشكل التركيب التعيين متى يُستخدم
NFC مركّب قانوني فقط الافتراضي لمحتوى الويب وقواعد البيانات وأسماء الملفات
NFD مفكَّك قانوني فقط معالجة نصية تزيل علامات التشكيل حرفا حرفا
NFKC مركّب يشمل التوافق البحث والمعرّفات ومرشحات الرسائل غير المرغوبة وطيّ العرض
NFKD مفكَّك يشمل التوافق تطبيع صارم قبل إزالة علامات التشكيل

الأشكال القانونية تحفظ المعنى

اكتب é وبدّل بين الأشكال. يبلّغ NFC بحرف واحد وبايتين (نقطة الترميز الوحيدة U+00E9)، بينما يبلّغ NFD بحرفين وثلاثة بايتات (حرف e عادي متبوع بنبرة حادّة دامجة، U+0301). يبدو الاثنان متطابقين على الشاشة لكنهما تسلسلا بايت مختلفان، وهذا التباين تحديدا هو ما يعالجه التطبيع. الأشكال القانونية تعيد ترتيب البايتات فحسب، لذا فإن é في أي من الشكلين يعني دائما الحرف e بنبرة حادّة.

ما الذي يغيّره “التوافق” فعلا

تعيد أشكال K (وهي NFKC وNFKD) كتابة الحروف التي تبدو متقاربة لكنها تحمل تنسيقا مختلفا. وهي عملية بفقدان: لا يمكنك استعادة الأصل. على سبيل المثال:

  • fi (U+FB01، الرابطة اللاتينية الصغيرة fi) تصبح fi (حرفان)
  • ① (U+2460، الرقم واحد داخل دائرة) يصبح 1
  • ㌀ (U+3300، مربع CJK «apaato») يصبح アパート
  • A كامل العرض (U+FF21) يصبح A

هذا قويّ للبحث وإزالة التكرار لكنه مدمِّر للتنسيق، لذا لا تلجأ إلى أشكال K إلا حين لا تهمّ الدقة البصرية.

قاعدة عملية

  • خزّن محتوى المستخدم بشكل NFC.
  • قارن المعرّفات بشكل NFC كي يتطابق café المكتوب بنقطة ترميز واحدة مع café المكتوب e + U+0301؛ وارتقِ إلى NFKC حين تريد أيضا أن يتطابق fi مع fi، أو A كامل العرض مع A، كما تفعل قواعد المعرّفات في UAX #31.
  • أنشئ روابط “slug” بلا علامات تشكيل عبر التطبيع إلى NFD ثم حذف كتلة علامات الدمج من U+0300 إلى U+036F.

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

عادةً يعني ذلك أن مُدخلك كان بالفعل في الشكل المستهدف. الصق نصا يمزج بين مصادر مختلفة (اسم ملف على جهاز Mac، أو مقطعا منسوخا من ملف PDF، أو سطرا من قاعدة بيانات قديمة)، وسيكون أرجح كثيرا أن ترى عدد الأحرف والبايتات يتغيّر.

لعناوين URL المعروضة، استخدم NFC. أما للـ slug التي تريدها ASCII خالصة، فطبّع إلى NFD، واحذف علامات الدمج بتعبير نمطي على النطاق من U+0300 إلى U+036F، ثم حوّلها إلى أحرف صغيرة. ويُعَدّ NFKD بديلا حين تريد أيضا طيّ الحروف المركّبة والأرقام داخل الدوائر.

الأشكال القانونية (NFC وNFD) لا تغيّر المعنى أبدا، بل تعيد ترتيب البايتات فقط. أما أشكال التوافق (NFKC وNFKD) فتغيّره فعلا: تنفصل الحروف المركّبة، وتُطوى الحروف كاملة العرض، وتُسطَّح الأحرف العلوية. استخدمها فقط حين يكون ذلك ما تريده.

يجري التطبيع على خادمنا عبر فئة Normalizer في PHP، وتعود النتيجة في الطلب نفسه؛ ولا يُخزَّن نصك. لا نسجّل سوى حدث مجهول يفيد بأي شكل طُبِّق، ولا نسجّل المحتوى نفسه أبدا.

أدوات ذات صلة

رمز أقل من أو يساوي

انسخ علامة ≤ ورموز المقارنة الرياضية المرتبطة بها. يشمل ذلك رموز Unicode وكيانات HTML وترميز LaTeX للجداول الحسابية والأوراق البحثية وصفحات الويب.

أداة كشف الأحرف غير المرئية

اكتشف وحذف الفواصل ذات العرض الصفري، والرموز اليونيكية المخفية، والمنفصلات غير المرئية من أي نص يحتوي على بيانات نقاط الكود والموقع.

نسخ رموز القلب

انسخ مجموعة منتقاة من رموز القلب والإيموجي الملون والزخارف. اطّلع على نقاط ترميز يونيكود الدقيقة قبل اللصق.

مترجم الإيموجي

اكتب نصا إنجليزيا، وستحصل كل كلمة من القائمة المدمجة على إيموجي مناسبة. انسخ النتيجة كنص يحتوي على إيموجي.

مولّد خطوط إنستغرام

ولّد "خطوط" Unicode (عريض، مائل، مخطوط، أحادي المسافة، فراكتور) تُلصق مباشرة في نبذة إنستغرام واسمك وتعليقاتك.

مولد النص العكسي

اقلب النص رأسًا على عقب باستخدام رموز يونيكود التي تبدو كأحرف معكوسة، لاستخدامها في السير الذاتية، والتعليقات التوضيحية، والمنشورات الاجتماعية التي تلفت الانتباه.

الأداة متاحة بلغات أخرى