في المغرب، يمكن لأسماء النطاق ".ma" أن تتضمّن حروفًا مشكّلة بفضل إدخال أسماء النطاق الدولية (IDN).
فعلى سبيل المثال، يمكن حجز نطاق مثل "école.ma" بصيغة Punycode بشكل يتوافق مع أنظمة DNS.
Punycode
يُعد Punycode نظام ترميز صُمّم لجعل أسماء النطاقات الدولية (IDN) متوافقة مع أنظمة أسماء النطاق (DNS)، أي أسماء النطاق التي تستخدم أحرفًا غير لاتينية أو غير تابعة لمعيار ASCII (رمز تبادل المعلومات الأمريكي القياسي)، مثل الحروف المُشكَّلة أو رموز تنتمي إلى أبجديات أخرى.
لا يمكن استخدام هذه الأحرف الخاصة مباشرةً في أنظمة أسماء النطاق التقليدية، التي تعتمد فقط على الأبجدية الإنجليزية. وهنا يأتي دور Punycode، حيث يتيح "تحويل" هذه الأحرف غير المعتمدة في ASCII إلى صيغة مقروءة ومقبولة من طرف نظام أسماء النطاق (DNS).
كيف يعمل Punycode؟
يُستخدم Punycode لتحويل الأحرف المكتوبة بصيغة Unicode، مثل الحروف المُشكَّلة (é، è، à، إلخ) أو حتى الأحرف غير اللاتينية (مثل السيريلية، أو العربية...) إلى سلسلة أحرف بصيغة ASCII، متوافقة مع نظام DNS.
في حالة أسماء النطاق المُشكَّلة المنتهية بـ .ma، تُعد هذه التحويلات ضرورية لضمان عمل النطاق بشكل صحيح في بيئة مبنية على ASCII فقط.
مثال:
- اسم النطاق «école.ma» بصيغة Unicode يتحول إلى الشكل التالي بصيغة Punycode :
xn--cole-9oa.ma.
- الحرف "é" يُحوّل إلى "xn--" متبوعًا بجزء خاص يُمثل الحرف المُشكّل، لإنتاج نسخة صالحة بـ ASCII.
عملية التحويل إلى Punycode
- تحديد الأحرف غير التابعة لـ ASCII:
إذا كان اسم النطاق يحتوي على حروف مُشكّلة أو رموز من أبجديات غير لاتينية، يتم أولاً تحديد هذه الأحرف. - التحويل إلى Punycode:
يتم تحويل كل حرف غير تابع لـ ASCII إلى سلسلة مكافئة بصيغة ASCII تبدأ بالمقدمة "xn--".
على سبيل المثال، "é" تُصبح جزءًا من سلسلة تبدأ بـ "xn--". - تسجيل النطاق في DNS:
بعد تحويل اسم النطاق إلى Punycode، يمكن استخدامه في سجلات DNS، مما يسمح بفتحه عبر متصفحات الإنترنت بشكل طبيعي.
Punycode وعناوين البريد الإلكتروني
غالبية خوادم البريد الإلكتروني لا تدعم تحويل أسماء النطاق المُشكَّلة إلى Punycode، لأن عناوين البريد عادةً ما تستخدم فقط الأحرف بصيغة ASCII (حروف، أرقام، ورموز معينة مثل "@"، "."، "_").
مثال:
العنوان françois@école.ma يحتفظ بنفس الصيغة أثناء الإرسال والاستقبال، دون تحويل النطاق إلى Punycode في البريد الإلكتروني.
Punycode وتصفح الإنترنت
تدعم المتصفحات الحديثة (مثل Chrome، Firefox، Edge) أسماء النطاق الدولية (IDN)، التي قد تحتوي على أحرف غير تابعة لـ ASCII (مثل الحروف المُشكّلة أو الأبجديات غير اللاتينية).
يقوم المتصفح تلقائيًا بتحويل اسم النطاق إلى Punycode في الخلفية لضمان أن الخادم (السيرفر) يستطيع فهم العنوان.
مثال:
إذا قمت بإدخال عنوان URL يحتوي على نطاق مُشكَّل، يقوم المتصفح أوتوماتيكيًا بالتعامل مع التحويل إلى Punycode لضمان الوصول السليم إلى الموقع.
يُستخدم Punycode بشكل رئيسي لتحويل أسماء النطاق المُشكَّلة أو التي تحتوي على أحرف غير تابعة لـ ASCII، حتى تتمكن خوادم نظام أسماء النطاق (DNS) — التي لا تدعم سوى الأحرف القياسية من نوع — من فهمها بشكل صحيح.