أسكي
هذه المقالة بحاجة لمراجعة خبير مختص في مجالها.(ديسمبر 2014) |
الاسم الرسمي | |
---|---|
اختصار | |
اللغات |
آسكي (ASCII، (تُلفظ بالإنجليزية: /ˈæski/) ASS-kee)[1] هي مجموعة رموز ونظام ترميز مبني على الأبجدية اللاتينية بالشكل الذي تستخدم به في الإنجليزية الحديثة ولغات غرب أوروبية أخرى. من أكثر الاستخدامات شيوعًا للنصوص المكتوبة بالآسكي، استخدامها في أنظمة الحاسوب، وفي أجهزة الاتصالات وأنظمة التحكم التي تتعامل مع نصوص.
يعرّف نظام آسكي القياسي الرموز القابلة للطباعة الآتية، مرتبة حسب قيمة آسكي الخاصة بها.
تعريف معيار آسكي
[عدل]يعتبر معيار آسكي من بين أنظمة تمثيل الرموز في الحاسوب، ويحدد علاقة تناظر بين قيمة رقمية لتتابع البتات وبين رمز أو رسم مستخدم في اللغة المكتوبة. إذ أن الحواسيب تتعامل فقط بإشارات كهربائية إما صفر أو واحد، أي البت (bit) في لغة البرمجة، ويمكن أن تمثل هذه البتات بتسلسلها أرقاما بالنظام الثنائي، ومجموعة من ثمانية بتات تمثل البايت (بالإنكليزية: Byte، بالفرنسية: Octet). ومن ثمة ظهرت الحاجة للتعبير عن الحروف والرموز بواسطة الأرقام الثنائية.
يُعَرِّفُ معيار آسكي مجموعة 128 رمزا أسندت لها أعداد ترتيبية من 0 إلى 127 وتم ترميزها بالنظام الثنائي من 0000000 إلى 1111111، وبالتالي تكفي 7 بتات للتعبير عنها. لذا يعد معيار ترميز 7 بتات. لكن بما أن الحواسيب تتعامل مع البايت (أي 8 بتات) فيقع التعبير عن رموز آسكي ببايت كامل يكون فيه البت الثامن غير مستعمل.
إختلفت طرق التعامل مع البت الثامن، فبينما فضلت جل الحواسيب إسناد صفر له (و هو الحل الشائع)، قامت بعض الأنظمة (مثل Prime Computer التي شغلت نظام تشغيل PRIMEROS) بإسناد واحد له، وفي أنظمة أخرى تم استعماله بت تكافؤ للتأكد من خلو الاتصالات من الأخطاء، أو لأغراض تختلف حسب الهدف من الجهاز المستخدم. ولاحقًا، ظهرت استعمالات في معايير ترميز امتدادية، للتعبير عن المزيد من الرموز والحروف التي يعجز آسكي عن التعبير عنها.
يكتفي معيار آسكي بترجمة تسلسل من البتات إلى حرف أو رمز معين. بالتالي، لن يعبر عن شكل ظهور النصوص أو ترتيبها، وتلك الأمور تقع على عاتق وسائل أخرى مثل اللغات الترميزية (أي لغات توصيف النص) على غرار إتش تي إم إل وغيرها.
قائمة الرموز
[عدل]بعض هذه الرموز لا يمكن إظهارها، وهي الرموز عدد 0 إلى 31 وكذلك الرمز 127. تستعمل هذه الرموز أوامر تحكم لطرفيات الحاسوب، فعلى سبيل المثال يعد الرمز 127 أمر الحذف، بينما الرمز 7 أمر إشارة صوتية.
أما الرموز الأخرى فهي الرموز الطباعية، وتشمل الفراغ (الرمز 32) والأرقام العربية الغربية، والحروف اللاتينية الكبيرة والصغيرة دون شكلات، ومجموعة من علامات التنقيط والحساب المختارة. يذكر أن عددا من علامات التنقيط هذه تستعمل لأغراض برمجية شتى.
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
في الجدول أدناه توضيح لقيم رموز ترميز آسكي.[2]
قيمة الرمز | الرمز | معنى الرمز | |||
---|---|---|---|---|---|
10 | 8 | 16 | 2 | ||
0 | 0 | 00 | 0000000 | NUL | Null - عدم |
1 | 01 | 01 | 0000001 | SOH | Start of Heading - بداية الترويسة |
2 | 02 | 02 | 0000010 | STX | Start of Text - بداية النص |
3 | 03 | 03 | 0000011 | ETX | End of Text - نهاية النص |
4 | 04 | 04 | 0000100 | EOT | End of Transmission - نهاية الإرسال |
5 | 05 | 05 | 0000101 | ENQ | Enquiry - طلب |
6 | 06 | 06 | 0000110 | ACK | Acknowledge - تأكيد وصول |
7 | 07 | 07 | 0000111 | BEL | Bell - جرس منبه |
8 | 010 | 08 | 0001000 | BS | Backspace - زر العودة للخلف (الحذف) |
9 | 011 | 09 | 0001001 | HT | Horizontal Tab - مسافة الجدولة الأفقية |
10 | 012 | 0A | 0001010 | LF | Line Feed - تخطي سطر جديد |
11 | 013 | 0B | 0001011 | VT | Vertical Tab - مسافة الجودة العمودية |
12 | 014 | 0C | 0001100 | FF | Form Feed - تخطي صفحة جديدة |
13 | 015 | 0D | 0001101 | CR | Carriage Return - عودة سطر |
14 | 016 | 0E | 0001110 | SO | Shift Out - شفرة خاصة |
15 | 017 | 0F | 0001111 | SI | Shift In - شفرة قياسية |
16 | 020 | 10 | 0010000 | DLE | Data Link Escape - هروب أثناء البث |
17 | 021 | 11 | 0010001 | DC1 | Device Control 1 à 4 - تحكم جهاز تواصل |
18 | 022 | 12 | 0010010 | DC2 | |
19 | 023 | 13 | 0010011 | DC3 | |
20 | 024 | 14 | 0010100 | DC4 | |
21 | 025 | 15 | 0010101 | NAK | Negative Acknowledge - تأكيد عدم الوصول |
22 | 026 | 16 | 0010110 | SYN | Synchronous Idle - إنتظار متزامن |
23 | 027 | 17 | 0010111 | ETB | End of Transmission Block - نهاية كتلة الإرسال |
24 | 030 | 18 | 0011000 | CAN | Cancel - إلغاء |
25 | 031 | 19 | 0011001 | EM | End of Medium - نهاية الوسيط |
26 | 032 | 1A | 0011010 | SUB | Substitute - بديل |
27 | 033 | 1B | 0011011 | ESC | Escape - زر الهروب |
28 | 034 | 1C | 0011100 | FS | File Separator - فاصل ملف |
29 | 035 | 1D | 0011101 | GS | Group Separator - فاصل مجموعة |
30 | 036 | 1E | 0011110 | RS | Record Separator - فاصل تسجيل |
31 | 037 | 1F | 0011111 | US | Unit Separator - فاصل وحدة |
32 | 040 | 20 | 0100000 | SP | Space - مسافة |
33 | 041 | 21 | 0100001 | ! | علامة التعجب |
34 | 042 | 22 | 0100010 | " | علامة التنصيص |
35 | 043 | 23 | 0100011 | # | علامة الرقم |
36 | 044 | 24 | 0100100 | $ | رمز الدولار |
37 | 045 | 25 | 0100101 | % | النسبة المئوية |
38 | 046 | 26 | 0100110 | & | واو اللاتينية |
39 | 047 | 27 | 0100111 | ' | فاصلة علوية (أبوستروف) |
40 | 050 | 28 | 0101000 | ( | قوس بداية (هلالي) |
41 | 051 | 29 | 0101001 | ) | قوس نهاية (هلالي) |
42 | 052 | 2A | 0101010 | * | إجَّامة، نجمة، علامة ضرب |
43 | 053 | 2B | 0101011 | + | علامة جمع (زائد) |
44 | 054 | 2C | 0101100 | , | فاصلة لاتينية |
45 | 055 | 2D | 0101101 | - | مطة، شَرْطَة، علامة طرح (ناقص) |
46 | 056 | 2E | 0101110 | . | نقطة |
47 | 057 | 2F | 0101111 | / | قُطْرِي، خط مائل، علامة قسمة |
48 | 060 | 30 | 0110000 | 0 | رقم صفر |
49 | 061 | 31 | 0110001 | 1 | رقم واحد |
50 | 062 | 32 | 0110010 | 2 | رقم إثنان |
51 | 063 | 33 | 0110011 | 3 | رقم ثلاثة |
52 | 064 | 34 | 0110100 | 4 | رقم أربعة |
53 | 065 | 35 | 0110101 | 5 | رقم خمسة |
54 | 066 | 36 | 0110110 | 6 | رقم ستة |
55 | 067 | 37 | 0110111 | 7 | رقم سبعة |
56 | 070 | 38 | 0111000 | 8 | رقم ثمانية |
57 | 071 | 39 | 0111001 | 9 | رقم تسعة |
58 | 072 | 3A | 0111010 | : | نقطتان رأسيتان |
59 | 073 | 3B | 0111011 | ; | فاصلة منقوطة |
60 | 074 | 3C | 0111100 | < | علامة مقارنة أقل، شارة بداية |
61 | 075 | 3D | 0111101 | = | علامة مساواة |
62 | 076 | 3E | 0111110 | > | علامة مقارنة أكثر، شارة نهاية |
63 | 077 | 3F | 0111111 | ? | علامة الإستفهام اللاتينية |
64 | 0100 | 40 | 1000000 | @ | رمز آت |
65 | 0101 | 41 | 1000001 | A | حرف لاتيني كبير A |
66 | 0102 | 42 | 1000010 | B | حرف لاتيني كبير B |
67 | 0103 | 43 | 1000011 | C | حرف لاتيني كبير C |
68 | 0104 | 44 | 1000100 | D | حرف لاتيني كبير D |
69 | 0105 | 45 | 1000101 | E | حرف لاتيني كبير E |
70 | 0106 | 46 | 1000110 | F | حرف لاتيني كبير F |
71 | 0107 | 47 | 1000111 | G | حرف لاتيني كبير G |
72 | 0110 | 48 | 1001000 | H | حرف لاتيني كبير H |
73 | 0111 | 49 | 1001001 | I | حرف لاتيني كبير I |
74 | 0112 | 4A | 1001010 | J | حرف لاتيني كبير J |
75 | 0113 | 4B | 1001011 | K | حرف لاتيني كبير K |
76 | 0114 | 4C | 1001100 | L | حرف لاتيني كبير L |
77 | 0115 | 4D | 1001101 | M | حرف لاتيني كبير M |
78 | 0116 | 4E | 1001110 | N | حرف لاتيني كبير N |
79 | 0117 | 4F | 1001111 | O | حرف لاتيني كبير O |
80 | 0120 | 50 | 1010000 | P | حرف لاتيني كبير P |
81 | 0121 | 51 | 1010001 | Q | حرف لاتيني كبير Q |
82 | 0122 | 52 | 1010010 | R | حرف لاتيني كبير R |
83 | 0123 | 53 | 1010011 | S | حرف لاتيني كبير S |
84 | 0124 | 54 | 1010100 | T | حرف لاتيني كبير T |
85 | 0125 | 55 | 1010101 | U | حرف لاتيني كبير U |
86 | 0126 | 56 | 1010110 | V | حرف لاتيني كبير V |
87 | 0127 | 57 | 1010111 | W | حرف لاتيني كبير W |
88 | 0130 | 58 | 1011000 | X | حرف لاتيني كبير X |
89 | 0131 | 59 | 1011001 | Y | حرف لاتيني كبير Y |
90 | 0132 | 5A | 1011010 | Z | حرف لاتيني كبير Z |
91 | 0133 | 5B | 1011011 | [ | قوس بداية معقف |
92 | 0134 | 5C | 1011100 | \ | قُطْرِي معكوس |
93 | 0135 | 5D | 1011101 | ] | قوس نهاية معقف |
94 | 0136 | 5E | 1011110 | ^ | علامة إقحام (شكلة قبعة) |
95 | 0137 | 5F | 1011111 | _ | شرطة سفلية |
96 | 0140 | 60 | 1100000 | ` | شكلة خلفية |
97 | 0141 | 61 | 1100001 | a | حرف لاتيني صغير a |
98 | 0142 | 62 | 1100010 | b | حرف لاتيني صغير b |
99 | 0143 | 63 | 1100011 | c | حرف لاتيني صغير c |
100 | 0144 | 64 | 1100100 | d | حرف لاتيني صغير d |
101 | 0145 | 65 | 1100101 | e | حرف لاتيني صغير e |
102 | 0146 | 66 | 1100110 | f | حرف لاتيني صغير f |
103 | 0147 | 67 | 1100111 | g | حرف لاتيني صغير g |
104 | 0150 | 68 | 1101000 | h | حرف لاتيني صغير h |
105 | 0151 | 69 | 1101001 | i | حرف لاتيني صغير i |
106 | 0152 | 6A | 1101010 | j | حرف لاتيني صغير j |
107 | 0153 | 6B | 1101011 | k | حرف لاتيني صغير k |
108 | 0154 | 6C | 1101100 | l | حرف لاتيني صغير l |
109 | 0155 | 6D | 1101101 | m | حرف لاتيني صغير m |
110 | 0156 | 6E | 1101110 | n | حرف لاتيني صغير n |
111 | 0157 | 6F | 1101111 | o | حرف لاتيني صغير o |
112 | 0160 | 70 | 1110000 | p | حرف لاتيني صغير p |
113 | 0161 | 71 | 1110001 | q | حرف لاتيني صغير q |
114 | 0162 | 72 | 1110010 | r | حرف لاتيني صغير r |
115 | 0163 | 73 | 1110011 | s | حرف لاتيني صغير s |
116 | 0164 | 74 | 1110100 | t | حرف لاتيني صغير t |
117 | 0165 | 75 | 1110101 | u | حرف لاتيني صغير u |
118 | 0166 | 76 | 1110110 | v | حرف لاتيني صغير v |
119 | 0167 | 77 | 1110111 | w | حرف لاتيني صغير w |
120 | 0170 | 78 | 1111000 | x | حرف لاتيني صغير x |
121 | 0171 | 79 | 1111001 | y | حرف لاتيني صغير y |
122 | 0172 | 7A | 1111010 | z | حرف لاتيني صغير z |
123 | 0173 | 7B | 1111011 | { | قوس حاصرة بداية |
124 | 0174 | 7C | 1111100 | | | سطر عمودي |
125 | 0175 | 7D | 1111101 | } | قوس حاصرة نهاية |
126 | 0176 | 7E | 1111110 | ~ | تلدة |
127 | 0177 | 7F | 1111111 | DEL | Delete - حذف |
على مر الزمن ومع التقدم التقني، ظلت التسميات المستعملة نفسها لكن المعنى اختلف[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.
أنظر أيضًا
[عدل]مراجع
[عدل]- ^ "Pronunciation for ASCII"، Merriam Webster (audio)، مؤرشف من الأصل في 2019-12-08، اطلع عليه بتاريخ 2008-04-14
{{استشهاد}}
:|archive-date=
/|archive-url=
timestamp mismatch (مساعدة). - ^ "Ascii Table - ASCII character codes and html, octal, hex and decimal chart conversion". www.asciitable.com. مؤرشف من الأصل في 2020-12-09. اطلع عليه بتاريخ 2020-12-09.
- ^ "ASCII codes". text-symbols.com (بالإنجليزية). Archived from the original on 2020-12-09. Retrieved 2020-12-09.
- ^ "History - ASCII-World". ascii-world.wikidot.com. مؤرشف من الأصل في 2020-12-09. اطلع عليه بتاريخ 2020-12-09.