أسكي

آسكي (ASCII، (تُلفظ بالإنجليزية: /ˈæski/) ASS-kee)[1] هي مجموعة رموز ونظام ترميز مبني على الأبجدية اللاتينية بالشكل الذي تستخدم به في الإنجليزية الحديثة ولغات غرب أوروبية أخرى. من أكثر الاستخدامات شيوعًا للنصوص المكتوبة بالآسكي، استخدامها في أنظمة الحاسوب، وفي أجهزة الاتصالات وأنظمة التحكم التي تتعامل مع نصوص.

أسكي
معلومات عامة
الاسم الرسمي
American Standard Code for Information Interchange (بالإنجليزية) عدل القيمة على Wikidata
اختصار
ASCII (بالإنجليزية) عدل القيمة على Wikidata
اللغات
التسلسل
هناك 95 رمز ASCII يمكن طباعتها، تحمل الأرقام من 32 إلى 126.

يعرّف نظام آسكي القياسي الرموز القابلة للطباعة الآتية، مرتبة حسب قيمة آسكي الخاصة بها.

تعريف معيار آسكي

قائمة رموز معيار ترميز ASCII مع مقابلاتها بالقيم العشرية و الست عشرية.

يعتبر معيار آسكي من بين أنظمة تمثيل الرموز في الحاسوب، ويحدد علاقة تناظر بين قيمة رقمية لتتابع البتات وبين رمز أو رسم مستخدم في اللغة المكتوبة. إذ أن الحواسيب تتعامل فقط بإشارات كهربائية إما صفر أو واحد، أي البت (bit) في لغة البرمجة، ويمكن أن تمثل هذه البتات بتسلسلها أرقاما بالنظام الثنائي، ومجموعة من ثمانية بتات تمثل البايت (بالإنكليزية: Byte، بالفرنسية: Octet). ومن ثمة ظهرت الحاجة للتعبير عن الحروف والرموز بواسطة الأرقام الثنائية.

يُعَرِّفُ معيار آسكي مجموعة 128 رمزا أسندت لها أعداد ترتيبية من 0 إلى 127 وتم ترميزها بالنظام الثنائي من 0000000 إلى 1111111، وبالتالي تكفي 7 بتات للتعبير عنها. لذا يعد معيار ترميز 7 بتات. لكن بما أن الحواسيب تتعامل مع البايت (أي 8 بتات) فيقع التعبير عن رموز آسكي ببايت كامل يكون فيه البت الثامن غير مستعمل.

إختلفت طرق التعامل مع البت الثامن، فبينما فضلت جل الحواسيب إسناد صفر له (و هو الحل الشائع)، قامت بعض الأنظمة (مثل Prime Computer التي شغلت نظام تشغيل PRIMEROS) بإسناد واحد له، وفي أنظمة أخرى تم استعماله بت تكافؤ للتأكد من خلو الاتصالات من الأخطاء، أو لأغراض تختلف حسب الهدف من الجهاز المستخدم. ولاحقًا، ظهرت استعمالات في معايير ترميز امتدادية، للتعبير عن المزيد من الرموز والحروف التي يعجز آسكي عن التعبير عنها.

يكتفي معيار آسكي بترجمة تسلسل من البتات إلى حرف أو رمز معين. بالتالي، لن يعبر عن شكل ظهور النصوص أو ترتيبها، وتلك الأمور تقع على عاتق وسائل أخرى مثل اللغات الترميزية (أي لغات توصيف النص) على غرار إتش تي إم إل وغيرها.

قائمة الرموز

بعض هذه الرموز لا يمكن إظهارها، وهي الرموز عدد 0 إلى 31 وكذلك الرمز 127. تستعمل هذه الرموز أوامر تحكم لطرفيات الحاسوب، فعلى سبيل المثال يعد الرمز 127 أمر الحذف، بينما الرمز 7 أمر إشارة صوتية.

أما الرموز الأخرى فهي الرموز الطباعية، وتشمل الفراغ (الرمز 32) والأرقام العربية الغربية، والحروف اللاتينية الكبيرة والصغيرة دون شكلات، ومجموعة من علامات التنقيط والحساب المختارة. يذكر أن عددا من علامات التنقيط هذه تستعمل لأغراض برمجية شتى.

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

في الجدول أدناه توضيح لقيم رموز ترميز آسكي.[2]

قيمة الرمزالرمزمعنى الرمز
108162
00000000000NULNull - عدم
101010000001SOHStart of Heading - بداية الترويسة
202020000010STXStart of Text - بداية النص
303030000011ETXEnd of Text - نهاية النص
404040000100EOTEnd of Transmission - نهاية الإرسال
505050000101ENQEnquiry - طلب
606060000110ACKAcknowledge - تأكيد وصول
707070000111BELBell - جرس منبه
8010080001000BSBackspace - زر العودة للخلف (الحذف)
9011090001001HTHorizontal Tab - مسافة الجدولة الأفقية
100120A0001010LFLine Feed - تخطي سطر جديد
110130B0001011VTVertical Tab - مسافة الجودة العمودية
120140C0001100FFForm Feed - تخطي صفحة جديدة
130150D0001101CRCarriage Return - عودة سطر
140160E0001110SOShift Out - شفرة خاصة
150170F0001111SIShift In - شفرة قياسية
16020100010000DLEData Link Escape - هروب أثناء البث
17021110010001DC1Device Control 1 à 4 - تحكم جهاز تواصل
18022120010010DC2
19023130010011DC3
20024140010100DC4
21025150010101NAKNegative Acknowledge - تأكيد عدم الوصول
22026160010110SYNSynchronous Idle - إنتظار متزامن
23027170010111ETBEnd of Transmission Block - نهاية كتلة الإرسال
24030180011000CANCancel - إلغاء
25031190011001EMEnd of Medium - نهاية الوسيط
260321A0011010SUBSubstitute - بديل
270331B0011011ESCEscape - زر الهروب
280341C0011100FSFile Separator - فاصل ملف
290351D0011101GSGroup Separator - فاصل مجموعة
300361E0011110RSRecord Separator - فاصل تسجيل
310371F0011111USUnit Separator - فاصل وحدة
32040200100000SPSpace - مسافة
33041210100001!علامة التعجب
34042220100010"علامة التنصيص
35043230100011#علامة الرقم
36044240100100$رمز الدولار
37045250100101%النسبة المئوية
38046260100110&واو اللاتينية
39047270100111'فاصلة علوية (أبوستروف)
40050280101000(قوس بداية (هلالي)
41051290101001)قوس نهاية (هلالي)
420522A0101010*إجَّامة، نجمة، علامة ضرب
430532B0101011+علامة جمع (زائد)
440542C0101100,فاصلة لاتينية
450552D0101101-مطة، شَرْطَة، علامة طرح (ناقص)
460562E0101110.نقطة
470572F0101111/قُطْرِي، خط مائل، علامة قسمة
480603001100000رقم صفر
490613101100011رقم واحد
500623201100102رقم إثنان
510633301100113رقم ثلاثة
520643401101004رقم أربعة
530653501101015رقم خمسة
540663601101106رقم ستة
550673701101117رقم سبعة
560703801110008رقم ثمانية
570713901110019رقم تسعة
580723A0111010:نقطتان رأسيتان
590733B0111011;فاصلة منقوطة
600743C0111100<علامة مقارنة أقل، شارة بداية
610753D0111101=علامة مساواة
620763E0111110>علامة مقارنة أكثر، شارة نهاية
630773F0111111?علامة الإستفهام اللاتينية
640100401000000@رمز آت
650101411000001Aحرف لاتيني كبير A
660102421000010Bحرف لاتيني كبير B
670103431000011Cحرف لاتيني كبير C
680104441000100Dحرف لاتيني كبير D
690105451000101Eحرف لاتيني كبير E
700106461000110Fحرف لاتيني كبير F
710107471000111Gحرف لاتيني كبير G
720110481001000Hحرف لاتيني كبير H
730111491001001Iحرف لاتيني كبير I
7401124A1001010Jحرف لاتيني كبير J
7501134B1001011Kحرف لاتيني كبير K
7601144C1001100Lحرف لاتيني كبير L
7701154D1001101Mحرف لاتيني كبير M
7801164E1001110Nحرف لاتيني كبير N
7901174F1001111Oحرف لاتيني كبير O
800120501010000Pحرف لاتيني كبير P
810121511010001Qحرف لاتيني كبير Q
820122521010010Rحرف لاتيني كبير R
830123531010011Sحرف لاتيني كبير S
840124541010100Tحرف لاتيني كبير T
850125551010101Uحرف لاتيني كبير U
860126561010110Vحرف لاتيني كبير V
870127571010111Wحرف لاتيني كبير W
880130581011000Xحرف لاتيني كبير X
890131591011001Yحرف لاتيني كبير Y
9001325A1011010Zحرف لاتيني كبير Z
9101335B1011011[قوس بداية معقف
9201345C1011100\قُطْرِي معكوس
9301355D1011101]قوس نهاية معقف
9401365E1011110^علامة إقحام (شكلة قبعة)
9501375F1011111_شرطة سفلية
960140601100000`شكلة خلفية
970141611100001aحرف لاتيني صغير a
980142621100010bحرف لاتيني صغير b
990143631100011cحرف لاتيني صغير c
1000144641100100dحرف لاتيني صغير d
1010145651100101eحرف لاتيني صغير e
1020146661100110fحرف لاتيني صغير f
1030147671100111gحرف لاتيني صغير g
1040150681101000hحرف لاتيني صغير h
1050151691101001iحرف لاتيني صغير i
10601526A1101010jحرف لاتيني صغير j
10701536B1101011kحرف لاتيني صغير k
10801546C1101100lحرف لاتيني صغير l
10901556D1101101mحرف لاتيني صغير m
11001566E1101110nحرف لاتيني صغير n
11101576F1101111oحرف لاتيني صغير o
1120160701110000pحرف لاتيني صغير p
1130161711110001qحرف لاتيني صغير q
1140162721110010rحرف لاتيني صغير r
1150163731110011sحرف لاتيني صغير s
1160164741110100tحرف لاتيني صغير t
1170165751110101uحرف لاتيني صغير u
1180166761110110vحرف لاتيني صغير v
1190167771110111wحرف لاتيني صغير w
1200170781111000xحرف لاتيني صغير x
1210171791111001yحرف لاتيني صغير y
12201727A1111010zحرف لاتيني صغير z
12301737B1111011{قوس حاصرة بداية
12401747C1111100|سطر عمودي
12501757D1111101}قوس حاصرة نهاية
12601767E1111110~تلدة
12701777F1111111DELDelete - حذف

على مر الزمن ومع التقدم التقني، ظلت التسميات المستعملة نفسها لكن المعنى اختلف[3] لأنه يرتبط بتقنيات لم تعد مستعملة:

  • رمز الحذف (DEL): كان معناه الأصلي في آلات الرقن التي تتعامل مع البطاقات المثقوبة، مثل تيليتايب. حيث أنه في حال إرتكاب المستعمل لخطأ، كان هناك زر يرجع رأس الكتابة إلى الحرف السابق ويثقب جميع الثقوب (أي ما يعادل 1111111 أو 127، وهو رمز DEL)، ومن يستقبل الرسالة عليه أن يتجاهل وجود ذلك الرمز «المحذوف». لكنه بالتدريج صار يستعمل في نفس سياقات استعمال BS لحذف الرمز السابق.
  • رمز العودة للخلف (BS): رمز مرتبط بزر Backspace على لوحات المفاتيح الحديثة. وقع خلط بينه وبين رمز DEL أيهما معني بحذف الرمز السابق، إذ أن توزيعهما على الأزرار وطريقة عملهما إختلفت حسب نوع الجهاز.
  • رمز الهروب (ESC): كان القصد الأصلي منه السماح بإرسال القيم الرقمية لرموز التحكم، عوضا عن تنفيذ معناها مباشرة على الحاسب. في الإستعمالات الحديثة، صار يعني إيقاف عمل العملية الحالية أو الخروج التام من التطبيق.
  • عودة السطر (CR) و تخطي السطر الجديد (LF): كانت في الأصل مرتبطة بآلات الرقن، والتي تشترط في بداية سطر جديد كلتي التعليمتين، الأولى لتحريك رأس الكتابة إلى مكان أول السطر، والثانية لتحريك الورقة. ورثت أنظمة تشغيل الحاسب عرف استعمال التعليمتين تلو بعض، لكن بعض البرامج تستعمل تخطي السطر الجديد (LF) وحده، وأحدث هذا فروقا ومشاكل توافق بين المعايير.
  • نهاية الملف، كان يشار لها برمز المعوض (SUB) للإشارة لمكان إنتهاء الملف (و يسمى في لغات البرمجة EOF)، لكن بعض الإصطلاحات البرمجية تستعمل رمز العدم (NUL) بديلًا عن ذلك.

التاريخ

رجوعًا إلى أوائل الستينيات، لم يكن هناك ما يعرف بنظام الآسكي أو بأسلوب موحد. من هذا المنطلق كانت الشركات المصنعة لأجهزة الحاسب وآلات رقن الأوراق المثقوبة، تؤدي مهامها بأي طريقة كانت ترى بأنها مناسبة لتأدية الغرض. أدى ذلك إلى وضعية من الفوضى حيث لم يكن هناك وسيلة لاتصال أجهزة الكمبيوتر المختلفة مع بعضها البعض. فقد كان لكل شركة مصنعة طرقها الخاصة المستخدمة في تمثيل الحروف الأبجدية والأرقام وأمثالها (تقدر بالستين في نفس الفترة)، وأحيانا في نفس الشركة تختلف هذه الطرق: على سبيل المثال كان لشركة آي بي إم مع اختلاف معداتها تسع مجموعات أحرف مختلفة.

قام بوب بيمير الذي كان يعمل لصالح شركة آي بي إم (شركة أعمال دولية) بالإضطلاع بدور هام في تأسيس نظام الآسكي ابتداء من عام 1960، وقد لقب تبعا لذلك «والد الآسكي».[4]

رعى المعهد الوطني الأمريكي للمقاييس (ANSI)، وقد كان وقتها معروفا بجمعية المعايير الأمريكية (American Standards Association أو ASA) تأسيس لجنة أسموها X3 عكفت على تحديد «شيفرة المعيار الأمريكي لتبادل المعلومات» (American Standard Code for Information Interchange) وإختصارها ASCII. ظهرت أول مراجعات هذا المعيار في سنة 1963 ومرت على تنقيحات كثيرة آخرها كان في سنة 1986.

أصناف الحروف

حروف التحكم

يخصص الآسكي الحروف الاثنين والثلاثين الأولى من أجل حروف التحكم.

الحروف القابلة للطبع

الرموز التي تسير من 20hex إلى 7Ehex (أي الحرف ما قبل الأخير في صيغة الآسكي المعتمدة على سبعة بتات والذي يقابله العدد 126) هي حروف قابلة للطبع. الحرف الأخير (أي الحرف الذي يقابله العدد 127) هو حرف غير قابل للطبع.

حدود استعمالات ترميز الآسكي

يخلو نظام ترميز آسكي من الرموز الكافية لإمكانية تمثيل النصوص بلغات غير اللغة الإنكليزية، كما أن كمية الرموز الخاصة التي يحتويها محدودة، مما أدى لضرورة استعمال أنظمة ترميز نصوص مختلفة لغيرها من اللغات على غرار العربية أو الروسية أو لغات أوروبا الشرقية وغيرها الكثير.

ظهرت على ثلاث فترات، مقاربات بديلة مختلفة لتوطين ترميز النصوص جراء حدود المعيار الأمريكي آسكي:

  • ظهور معايير محلية، طول الرمز فيها بايت واحد، وهي أسهلها إنشاء. على سبيل المثال يذكر معيار ASMO 449 للغة العربية الذي هو معيار ASCII بتعويض الحروف اللاتينية بمقابلات عربية. من مساوئ هذه الطريقة أن كم الرموز الذي يمكن التعبير عنه محدود بهذا المعيار، ويجب توضيح الترميز لزومًا خارج النص.
  • ظهور معايير امتدادية، يكون للنص فيه سياق، وباختلاف السياقات تكون لنفس القيمة رموز مختلفة (مثل أسرة معايير ISO/CEI 2022). على سبيل المثال نذكر فكرة «صفحات الترميز» (code page) على غرار ويندوز 1252 للغة العربية. من مساوئ هذه الطريقة أنها تسبب تضاربًا في تأويل النص بين المعايير المختلفة.
  • ظهور معايير شاملة لعدة لغات وتستعمل عدة بايتات، وكان معيار يونيكود الكفيل بهذا لكونه يغطي العدد الأكبر من اللغات.

في خضم هذه المراحل، تمت إعادة تصنيف وتسمية معيار آسكي الأصلي قبل كل تلك البدائل الجديدة إلى الأسماء التالية:

  • ANSI X3.4:1986 (و أحيانا يسمى، خطأَ، «معيار ANSI» مع أن اللفظة تعني في الأصل «المعهد الوطني الأمريكي للمقاييس» وهذا المعيار كان قراراً منه)
  • ISO/CEI 646-US
  • صفحة الترميز Code Page IBM 367
  • US-ASCII ، وهي تسمية عامة يمكن أن تحيل على أي من الأشكال السابقة لهذا المعيار.

مازال استعمال آسكي دارجًا إلى اليوم في الحواسيب على نطاق واسع، وبعض خدمات البريد الإلكتروني (MIME) ورسائل الهاتف SMS مازالت تستعمل النسخة الأصلية بطول 7 بتات للحرف بدل 8. كما أن أكثر المعايير البديلة الرائجة حاليًا تحافظ على التوافق مع قيم رموزه.

تغيرات نظام آسكي وأنظمة أخرى مستمدة منه

يونيكود

قد يمثل يونيكود الحروف في ثماني بتات أو ستة عشر بتا أو اثنين وثلاثين بتا. هذه الأنظمة الثلاثة تسمى على التوالي UTF-8 وUTF-16 وUTF-32.

أنظر أيضًا

مراجع