ما هو Unicode؟
Unicode معيار حاسوبي عالمي للترميز والتمثيل والتعامل المتسق مع النصوص في معظم أنظمة الكتابة حول العالم. وفي مجال النطاقات يتيح Unicode أسماء النطاقات الدولية (IDN) التي تحتوي محارف غير لاتينية مثل الصينية والعربية والسيريلية وغيرها. ويخصص نقطة شيفرة فريدة لكل محرف في اللغات المختلفة، بما يضمن تمثيلاً متسقاً عبر الأنظمة.Unicode في أسماء النطاقات
دعم IDN
يتيح Unicode نطاقات مثل:
- 例え.jp (اليابانية)
- مثال.مصر (العربية)
- пример.рф (السيريلية الروسية)
- 例子.中国 (الصينية)
تحويل Punycode
يستخدم DNS محارف ASCII، لذلك تحول النطاقات Unicode إلى Punycode:
Unicode: münchen.de
Punycode: xn--mnchen-3ya.de
Unicode: 北京.中国
Punycode: xn--1lq90i.xn--fiqs8s
نقاط شيفرة Unicode
البنية
Format: U+XXXX (hexadecimal)
Examples:
A = U+0041 (Latin A)
а = U+0430 (Cyrillic a)
中 = U+4E2D (Chinese character)
كتل المحارف
| الكتلة | المجال | نظام الكتابة |
|---|---|---|
| Basic Latin (اللاتينية الأساسية) | U+0000-007F | English/ASCII (الإنجليزية وASCII) |
| Cyrillic (السيريلية) | U+0400-04FF | Russian, etc. (الروسية وغيرها) |
| Arabic (العربية) | U+0600-06FF | Arabic (العربية) |
| CJK (الصينية واليابانية والكورية) | U+4E00-9FFF | Chinese/Japanese/Korean (الصينية واليابانية والكورية) |
مخاوف الأمان
هجمات المحارف المتشابهة
محارف متشابهة شكلاً من أنظمة كتابة مختلفة:
Latin 'a' (U+0061) vs Cyrillic 'а' (U+0430)
Latin 'o' (U+006F) vs Cyrillic 'о' (U+043E)
Attack: аpple.com (Cyrillic 'а') looks like apple.com
حماية المتصفح
قد تعرض المتصفحات Punycode للنطاقات المختلطة أو المشبوهة.
تطبيع Unicode
طرق مختلفة لتمثيل المحرف نفسه:
é = U+00E9 (precomposed)
é = U+0065 + U+0301 (decomposed: e + combining accent)
Normalization forms: NFC, NFD, NFKC, NFKD
يعد Unicode أساساً لإتاحة الإنترنت عالمياً، إذ يتيح للمستخدمين في كل مكان تسجيل أسماء النطاقات بلغاتهم وأنظمة كتابتهم الأصلية والوصول إليها.