محول النص ↔ Unicode
النص
يونيكود
التفاصيل التقنية
كيف يعمل محوّل النص ↔ يونيكود
ما الذي تفعله الأداة
تقوم أداة النص ↔ يونيكود بتحويل النص إلى نقاط ترميز يونيكود (Unicode code points) ومنها، عبر عدة صيغ: U+XXXX، ومحارف الهروب في JavaScript (\uXXXX أو \u{XXXXX})، والصيغة العشرية، و0xHEX، وكيانات HTML الرقمية (&#N; أو &#xHEX;). وحدة فك الترميز متساهلة — فهي تتعرّف على أي مزيج من هذه الصيغ المتداخل مع النص وتستخرج نقاط الترميز. أما المُرمِّز فيتيح لك اختيار صيغة الإخراج والفاصل بين نقاط الترميز.
حالات استخدام شائعة للمطورين
يستخدم مطوّرو الواجهة الأمامية الأداة لترجمة الرموز التعبيرية ومحارف CJK إلى تسلسلات هروب ASCII آمنة لملفات JSON أو الشيفرة المصدرية أو للنقل عبر قنوات مقيّدة. ويتحقق مهندسو التوطين من نقاط الترميز الدقيقة المستخدمة في سلسلة مترجمة. كما تفيد الأداة في اكتشاف المحارف غير المرئية أو المتشابهة شكلاً (homoglyphs، وواصلات بعرض صفري ZWJ، وعلامات RTL) المختبئة داخل مقطع منسوخ.
تنسيقات البيانات أو أنواعها أو متغيراتها
صيغة يونيكود القياسية هي U+XXXX لمستوى اللغات المتعددة الأساسي (BMP) وU+XXXXX للمستويات التكميلية. تستخدم محارف الهروب في JavaScript الصيغة \uXXXX لـ BMP و\u{XXXXX} (ES2015+) للنطاق الكامل. يقبل HTML الكيانات الرقمية (عشرية &#N; أو سداسية عشرية &#xN;). وتدور الصيغ العشرية البحتة و0xHEX ذهاباً وإياباً عبر codePointAt / fromCodePoint دون تفسير إضافي. تُمثَّل المحارف الفلكية (Astral) (مثل الرموز التعبيرية 🌍) كنقطة ترميز واحدة أعلى من U+FFFF.
المزالق الشائعة والحالات الطرفية
لا يمكن التعبير عن المحارف الفلكية باستخدام الصيغة الأقدم \uXXXX لأن كل هروب يتكون من 4 خانات سداسية عشرية فقط — استخدم \u{...} أو زوجاً بديلاً (surrogate pair). نقاط الترميز الأعلى من U+10FFFF غير صالحة وفق مواصفات يونيكود وسيتم رفضها. تظهر علامات الدمج وتسلسلات الرموز التعبيرية ZWJ كنقاط ترميز متعددة رغم أنها تُعرض كرمز واحد. لن يفسّر مفكك الترميز كيانات HTML المسماة (©، &) — استخدم مفكك ترميز HTML مخصصاً لها.
متى تستخدم هذه الأداة بدلًا من الكود
استخدم أداة المتصفح للفحص السريع، وتوليد تسلسلات الهروب، والبحث عن المحارف المتشابهة شكلاً. في الشيفرة، فضّل واجهات برمجة التطبيقات الأصلية للغة للتعامل مع السلاسل (`String.fromCodePoint`، و`Array.from(str)` للتكرار على نقاط الترميز في JS؛ و`chr` و`ord` في Python؛ و`Character.toCodePoint` في Java) إضافةً إلى مكتبات ICU الكاملة عندما تحتاج إلى التطبيع (NFC/NFD)، أو طيّ الحالة (case folding)، أو تقسيم عناقيد الغرافيم (grapheme-cluster segmentation).