متوفر أيضًا بلغات أخرى: English · Español · Português · Français
جدول ASCII
كل محارف ASCII بالعشري والست عشري والثماني والثنائي، مع إحصاءٍ لأي محارف التحكّم ما زال شيءٌ يستعملها.
ما جدول ASCII؟
يُسنِد ASCII رقمًا من 0 إلى 127 إلى كل واحدٍ من 128 محرفًا. خمسةٌ وتسعون منها مطبوعة: المسافة والأرقام والأبجديتان وعلاماتُ الترقيم في لوحة مفاتيح أمريكية. أما الثلاثة والثلاثون الباقية فلا تطبع شيئًا البتة. وهي محارف التحكّم، وهي نصف الجدول الذي تسرده كل المراجع ولا يشرحه أحد.
وهذا التقسيم ليس مسألة رأي. ففي قاعدة بيانات محارف Unicode تحمل هذه الثلاثة والثلاثون الاسم الحرفي <control>، وأسماؤها الحقيقية في ملف أسماءٍ بديلة منفصل. وهذه الصفحة مولَّدةٌ من كليهما، فالأسماء والاختصارات والأسماء البديلة هي أسماء المعيار نفسه لا ما يحفظه أحد.
وكلُّ ما عدا ذلك في الحاسوب الحديث مبنيٌّ فوقه. فقد صُمّم UTF-8 بحيث تكون نقاطُ ترميزه الـ128 الأولى هي ASCII بعينها بايتًا ببايت، ولهذا يكون ملفُّ نصٍّ إنجليزي صحيحًا بمقياس ASCII وصحيحًا بمقياس UTF-8 في آنٍ واحد، ومنذ عقود.
كيف تستعمل الجدول؟
- ابحث بأي صورةٍ خطرت لك. اكتب 65، أو 0x41، أو حرف A نفسه، أو carriage، أو ESC. فالقيم العشرية والست عشرية والمحارف المفردة والأسماء والاختصارات والأسماء البديلة كلها تُطابَق.
- اقرأ السطر عرضًا إلى الترميز الذي تحتاجه. فكل سطرٍ يحمل العشري والست عشري والثماني والثنائي بثمانية بتات، مُصدَّرةً بأصفار كي تتحاذى الأعمدة عند نسخها. وزرُّ النسخ يعطيك المحرف، أما محارف التحكّم التي لا محرف لها فيعطيك هروبها الست عشري.
- انظر أولًا إلى قسم محارف التحكّم. فهو الجزء ذو الأرقام المفاجئة، وهو يفسّر لماذا يشغل سطرُ ويندوز الجديد بايتين لا بايتًا واحدًا.
أربعةٌ من محارف التحكّم الثلاثة والثلاثين ما زالت تُستعمل
المعتاد أن تُوصف محارفُ التحكّم بقائمةِ أسماءٍ دون بيان أيِّها يهم. والعدُّ أنفع، فعددنا. ففي 9,760 ملف نصٍّ و127,721,432 محرفًا — هذا الموقع كله، وHTML المبني منه، واثنا عشر كتابًا في الملك العام — يظهر أربعةٌ بالضبط من الثلاثة والثلاثين.
فتغذية السطر تظهر 434,063 مرة، وإرجاع العربة 229,147 مرة. ويخرج الجدولة ثلاث مرات، والرجوع للخلف مرتين، وكلاهما داخل نصوصٍ تتحدث عنهما. أما التسعة والعشرون الباقية فلا تخرج ولا مرة: لا NUL، ولا الجرس، ولا الهروب، ولا الحذف، ولا أيٌّ من محارف التحكّم العشرة للإرسال، ولا الأربعة للأجهزة، ولا الفواصل الأربعة للمعلومات.
وذلك أنها كانت تعليماتٍ لآلةٍ لم تعد موجودة. فجهاز التلكس آلةٌ كاتبة على طرف سلك، والرموزُ تخبره ماذا يفعل ماديًّا: اقرع الجرس، اثقب الشريط، كفّ عن القراءة، تهيّأ للإصغاء. ونجا اثنان لأن اثنين كانا يحرّكان الورق: فإرجاع العربة يزلق العربة إلى الهامش الأيسر، وتغذية السطر تُدير الأسطوانة سطرًا واحدًا. وكان التلكس يحتاج إليهما معًا ليبدأ سطرًا جديدًا، ولهذا ما زال سطرُ ويندوز الجديد يشغل بايتين، ولهذا قد يفسد الملفُّ حتى اليوم عند نقله بين نظامَي تشغيل.
وأشدُّ الحالات أسًى فواصلُ المعلومات. ففي ASCII أربعةُ محارف — فاصل ملف وفاصل مجموعة وفاصل سجل وفاصل وحدة — وُضعت بالضبط للعمل الذي يؤديه CSV أداءً رديئًا، دون شيءٍ من مشكلات الاقتباس والهروب التي تجعل تحليل CSV حقل ألغام. وهي قابعةٌ في 0x1C إلى 0x1F منذ سنة 1963 ولا يكاد يستعملها شيء.
والمعيار لا يتفق مع نفسه أيضًا
تسعةٌ من محارف ASCII تحمل أكثر من اسمٍ رسمي، والجدول يعرضها كلها. وأبعدُها أثرًا 0x0A، الذي تدرجه قاعدةُ Unicode بوصفه LINE FEED وNEW LINE وEND OF LINE. وثلاثةُ أسماء في ملفٍ واحد للمحرف الذي لا يتفق أحدٌ على استعماله خلاصةٌ وافية لسبب فوضى نهايات الأسطر: فالمعيار نفسه لم يحسم قط هل هو يقدّم الورق أم ينهي السطر.
والجدولة هي CHARACTER TABULATION وأيضًا HORIZONTAL TABULATION، و0x0B هو LINE TABULATION وأيضًا VERTICAL TABULATION. أما shift out وshift in فهما كذلك LOCKING-SHIFT ONE وLOCKING-SHIFT ZERO، من نظامٍ لتبديل أطقم المحارف لا يكاد أحدٌ يصادفه اليوم.
وثمة حالةٌ حدّية يحسن معرفتها. فالمسافة محرفٌ مطبوع — تسمّيها القاعدة SPACE لا <control> — ومع ذلك هي المحرف المطبوع الوحيد ذو الاختصار الرسمي SP، لأنها لا ترسم شيئًا مرئيًّا والجداول تحتاج إلى إظهار شيء. ولهذا وردت هنا مع علامات الترقيم.
حدودٌ صادقة
إحصاءُ الاستعمال قياسٌ لمدوّنةٍ بعينها لا قانون. فهذا الموقع TypeScript وHTML ونثرٌ إنجليزي، فهو يقول الكثير عن هيئة شيفرة الوِب الحديثة، ولا يقول شيئًا عمّا يُصدره بروتوكولٌ تسلسلي أو طرفيةُ نقاط بيع. فالبرمجيات التي تخاطب طابعةً أو قارئ باركود أو حاسوبًا مركزيًّا ما زالت تستعمل هذه الرموز بلا ريب، وهناك تعيش محارفُ التحكّم بالأجهزة والإرسال. وما يثبته الرقم هو أنها اختفت من النص العادي.
وASCII كذلك ليس إلا نقاط الترميز الـ128 الأولى. فكل ما فيه علامة تشكيل، وكل ما هو بكتابةٍ أخرى، وكل الرموز التعبيرية، والسواد الأعظم من علامات الترقيم التي يستعملها مستندٌ حقيقي، كلها خارجه. فإن لم يكن المحرف في هذه الصفحة فليس لـASCII رقمٌ له ببساطة، ومطلوبك UTF-8، الذي يبدأ بموافقة هذا الجدول تمامًا ثم يمضي.
وأخيرًا يستحق محرفُ الهروب تنويهًا. فهو لا يظهر في مدوّنتنا، لكنه أبعد ما يكون عن الموت: إذ هو الذي يفتتح متتاليات هروب الطرفية التي تلوّن كل أدوات سطر الأوامر. ولا يظهر في النص المخزَّن لأنه ينتمي إلى السلك بين البرنامج والطرفية لا إلى الملفات.
لماذا هو مجاني؟
لأنه جدولٌ من حقائق عامة. فالصفحة نصٌّ ساكن مع صندوق بحثٍ يرشّحها داخل متصفحك: لا يُرفع شيء ولا يُخزَّن شيء، وليس ثمة خادم في قراءتها.
فلا حساب ولا تسجيل ولا شيء محجوب. والبيانات الأصل هي قاعدة بيانات محارف Unicode التي يستطيع أي أحدٍ تنزيلها، والسكربت الذي يحوّلها إلى هذه الصفحة في المستودع إلى جوارها.