GSM-7 هي الأبجدية الافتراضية بطول 7-بت المحدَّدة في GSM 03.38 (3GPP TS 23.038) لرسائل SMS. تُرمِّز 128 محرفًا — أحرفًا لاتينية وأرقامًا وعلامات ترقيم وقليلًا من المحارف المشكَّلة واليونانية — في 7 بتات لكل منها. وتعيش عشرة محارف إضافية في جدول امتداد ويكلّف كل منها سبتِتَين. ويتّسع النص لـ 160 محرفًا في رسالة SMS واحدة.
الجدول الأساسي (128 محرفًا)
تحزم الأبجدية الافتراضية GSM-7 عدد 128 محرفًا في 7 بتات لكل منها. وتغطي الأحرف اللاتينية الكبيرة والأرقام وعلامات الترقيم الشائعة ومجموعة من حروف العلة اللاتينية المشكَّلة وعلامتي القسم والعملة وعدة أحرف يونانية كبيرة تُستخدم كرموز. وكل محرف هنا يكلّف سبتِتًا واحدًا بالضبط (7 بتات).
| مجموعة | أحرف |
|---|---|
| الأحرف اللاتينية الكبيرة | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
| الأحرف اللاتينية الصغيرة | a b c d e f g h i j k l m n o p q r s t u v w x y z |
| أرقام | 0 1 2 3 4 5 6 7 8 9 |
| علامات ترقيم | ! " # % & ' ( ) * + , - . / : ; < = > ? _ |
| أحرف لاتينية مشكلة | à ä å æ è é ì ñ ò ö ø ù ü Ä Å Æ Ç É Ñ Ö Ø Ü ß |
| الرموز اليونانية | Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ |
| العملة / الرموز | £ $ ¥ ¤ € (ext) § ¡ ¿ @ |
| مسافات فارغة | مسافة (SP)، CR، LF |
جدول الامتداد
عشرة محارف ليست في الجدول الأساسي. يُوصَل إليها ببادئة هروب (0x1B) يتبعها رمز المحرف في جدول الامتداد، ما يعني أن كل منها يكلّف سبتِتَين لا واحدًا. وإدراج أي منها في رسالة يقلّل السعة الفعلية للرسالة الواحدة. لاحظ أن علامة اليورو (€) واحدة منها.
| حرف | الاسم |
|---|---|
| | | خط عمودي |
| ^ | علامة الإقحام / علامة الإمالة |
| € | علامة اليورو |
| { | القوس المعقوص الأيسر |
| } | القوس المعقوص الأيمن |
| [ | قوس مربع أيسر |
| ] | قوس مربع أيمن |
| ~ | علامة المد (Tilde) |
| \ | شرطة مائلة عكسية |
| FF | فاصل الصفحة |
حزمة 7-بت
لأن كل محرف 7 بتات بينما البايتات 8 بتات، تحزم GSM-7 السبتِتات عبر حدود البايت. تُحزَم ثمانية محارف بطول 7-بت في سبعة بايتات بطول 8-بت، فتملأ 160 سبتِتًا عدد 140 بايت — حدّ بيانات مستخدم SMS. وتزيح الحزمة بتات كل محرف تالٍ لملء الفراغات، ولهذا تبدو رؤية بايت-لكل-محرف الساذجة لرسالة GSM-7 مشوَّشة.
8 characters (56 bits) ────► 7 octets (56 bits)
160 GSM-7 septets ────► 140 octets (the SMS payload limit)
(an extension char = 2 septets)جداول التبديل اللغوي
يعرّف 3GPP TS 23.038 أيضًا جداول تبديل لغوية وطنية (مثل التركية والإسبانية والبرتغالية) تعيد تعيين بعض مواضع جدول الامتداد إلى أحرف خاصة باللغة. والدعم متفاوت عبر الهواتف والشبكات، لذا يتجنّب كثير من المرسِلين الاعتماد عليها ويلجؤون إلى UCS-2 حين تحتاج الرسالة محارف خارج مجموعة GSM-7 الأساسية.
الأسئلة المتكررة
كم محرفًا يتّسع في رسالة GSM-7؟
160 محرفًا في رسالة SMS واحدة، لأن 160 سبتِتًا بطول 7 بتات لكل منها تملأ حدّ بيانات المستخدم البالغ 140 بايت. وتنخفض رسائل GSM-7 المدموجة إلى 153 محرفًا لكل جزء لإفساح المجال لترويسة بيانات المستخدم.
أي محارف تُحسَب باثنين في GSM-7؟
محارف جدول الامتداد العشرة — | ^ € { } [ ] ~ \ وتغذية النموذج — يكلّف كل منها سبتِتَين لأنها تحتاج بادئة هروب. واستخدام أي منها يقلّل مقدار النص الذي يتّسع في رسالة SMS واحدة.
هل علامة اليورو ضمن GSM-7؟
نعم، لكن في جدول الامتداد، لذا تكلّف سبتِتَين لا واحدًا. لذلك تتّسع رسالة تحتوي € لعدد أقل من المحارف قبل أن تحتاج جزءًا ثانيًا.
لماذا تبدو رسالة GSM-7 مشوَّشة على مستوى البايت؟
لأن GSM-7 تحزم محارف 7-بت عبر حدود البايت 8-بت. تشغل ثمانية محارف سبعة بايتات، لذا فإن قراءة الحمولة بايتًا لكل محرف تعطي هراءً — يجب أن تفكّ حزمة السبتِتات أولًا.
ماذا يحدث إن احتوى نصي محرفًا ليس في GSM-7؟
يجب أن تتحوّل الرسالة كاملة إلى ترميز UCS-2 (16-بت)، ما يخفّض سعة الرسالة الواحدة من 160 إلى 70 محرفًا. ويفرض ذلك محرف واحد غير GSM-7 (رمز تعبيري أو علامة اقتباس مقوّسة أو كثير من الأحرف غير اللاتينية).
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.