UCS-2 هو الترميز 16-بت الذي تستخدمه SMS لأي نص يحتوي محارف خارج أبجدية GSM-7 — كتابات غير لاتينية، ورموز تعبيرية، وعلامات اقتباس مقوّسة. ويأخذ كل محرف بايتين، فتحمل رسالة UCS-2 واحدة 70 محرفًا وتحمل الأجزاء المدموجة 67 لكل منها. ويفرض محرف واحد غير GSM-7 الرسالة كاملة إلى UCS-2.
لماذا تحتاج SMS إلى UCS-2
تغطي GSM-7 فقط 128 محرفًا مع مجموعة امتداد صغيرة. وأي شيء آخر — العربية والصينية والسيريلية والعبرية والتايلندية والرموز التعبيرية، وحتى المحارف الطباعية مثل علامات الاقتباس المقوّسة والشرطات — غير قابل للتمثيل. ولتلك، تتحوّل SMS إلى UCS-2، وهو ترميز ثابت العرض بطول 16-بت (فعليًا UTF-16 big-endian للمستوى متعدد اللغات الأساسي). ويُشار إليه بقيمة data_coding بقيمة 0x08.
السعة: 70 و67
حقل بيانات مستخدم SMS يبلغ 140 بايت. وبمعدّل بايتين لكل محرف، يتّسع UCS-2 لـ 70 محرفًا في رسالة واحدة. وحين تُدمَج الرسالة، تستهلك ترويسة بيانات المستخدم بطول 6 بايت من الحمولة، فتبقى 134 بايت — 67 محرفًا لكل جزء. وهذا أقل من نصف سعة GSM-7، ولهذا لاختيار الترميز أثر تكلفة كبير.
| الترميز | SMS مفرد | لكل مقطع من الرسالة المدمجة |
|---|---|---|
| GSM-7 (7-bit) | 160 حرفاً | 153 حرفاً |
| ثنائي 8-bit | 140 بايت | 134 بايت |
| UCS-2 (16-bit) | 70 حرفاً | 67 حرفاً |
ما الذي يُفعِّل UCS-2
الترميز كل-أو-لا-شيء لكل رسالة: محرف واحد خارج GSM-7 يفرض الرسالة كاملة إلى UCS-2، ما يُسقِط السعة من 160 إلى 70. والمذنبون الشائعون يسهل إدخالهم بغير قصد — فاصلة عليا مقوّسة من معالج نصوص، أو شرطة طويلة، أو رمز تعبيري، أو اسم غير لاتيني. وكشف هذه قبل الإرسال أكبر رافعة على تكلفة SMS.
| الفئة | أمثلة |
|---|---|
| الرموز التعبيرية | 😀 ✅ 🚀 ❤️ |
| علامات الترقيم الطباعية | ' ' “ ” – — … |
| النصوص غير اللاتينية | العربية · 中文 · Кириллица · עברית · ไทย |
| الأحرف ذات العلامات غير الموجودة في GSM-7 | â ê î ô û ã õ ą ę ř |
تحذير الأزواج البديلة (surrogate pairs)
UCS-2 صارم بطول 16-بت ويغطي المستوى متعدد اللغات الأساسي في يونيكود. أما المحارف فوق U+FFFF — كثير من الرموز التعبيرية الحديثة مثلًا — فتُمثَّل في UTF-16 كأزواج بديلة من وحدتي رمز بطول 16-بت، فيستهلك رمز تعبيري واحد أربعة بايتات (محرفَي UCS-2). لذا قد تُحسَب رسالة تبدو رمزًا واحدًا كمحرفين ضمن حدّ 70/67.
الأسئلة المتكررة
كم محرفًا يتّسع في رسالة يونيكود؟
70 محرفًا في رسالة UCS-2 واحدة، و67 لكل جزء حين تُدمَج الرسالة. لأن كل محرف 16 بت (بايتان) مقابل حدّ حمولة SMS البالغ 140 بايت.
ما الذي يجعل SMS تتحوّل إلى UCS-2؟
أي محرف واحد خارج أبجدية GSM-7 — رمز تعبيري أو علامة اقتباس مقوّسة أو شرطة طويلة أو نص غير لاتيني — يفرض الرسالة كاملة إلى UCS-2. ويُختار الترميز لكل رسالة لا لكل محرف.
هل UCS-2 هو نفسه UTF-16؟
تقريبًا. UCS-2 ثابت بطول 16-بت ويغطي المستوى متعدد اللغات الأساسي. وتعامل SMS الحمولة كـ UTF-16 big-endian، لذا تصبح المحارف فوق U+FFFF (كثير من الرموز التعبيرية) أزواجًا بديلة وتأخذ أربعة بايتات.
لماذا يُحسَب رمز تعبيري واحد أحيانًا كمحرفين؟
الرموز التعبيرية فوق U+FFFF تُرمَّز كأزواج بديلة في UTF-16 — وحدتا رمز بطول 16-بت — فيستهلك المحرف الواحد فتحتين من فتحات محارف UCS-2 المتاحة البالغة 70 (أو 67).
كيف أتجنّب إرسال UCS-2 بغير قصد؟
نقِّ المدخل قبل الإرسال: استبدل علامات الاقتباس والشرطات الذكية بمكافئاتها ASCII، واحذف أو حوّل التشكيلات الشاردة، وافحص الرموز التعبيرية. ويعلّم مدقّق GSM-7 / يونيكود المحارف الدقيقة التي تفرض UCS-2.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.