ASCII الموسع

مخرجات برنامج ascii في Cygwin

يُعدّ نظام ASCII الموسّع مجموعة من ترميزات الأحرف التي تشمل عادةً مجموعة أحرف ASCII الأصلية البالغ عددها 96 حرفًا ، بالإضافة إلى ما يصل إلى 128 حرفًا إضافيًا. لا يوجد تعريف رسمي لمصطلح "ASCII الموسّع"، وقد وُجّهت انتقادات لاستخدامه. [ 1 ] [ 2 ] [ 3 ] [ أ ]

كان معيار ISO 8859 أول معيار دولي يُضفي الطابع الرسمي على توسيع مجموعة أحرف ASCII: من بين العديد من المتغيرات اللغوية التي شفرها، يُعرف ISO 8859-1 - الذي يدعم معظم لغات أوروبا الغربية - في الغرب باسم ISO Latin-1 . ومنذ ISO 8859، ظهرت العديد من ترميزات ASCII الموسعة الأخرى. وبالمثل، طوّرت EBCDIC العديد من المتغيرات الموسعة على مر العقود.  

تستخدم جميع أنظمة التشغيل الحديثة نظام يونيكود الذي يدعم آلاف الأحرف. ومع ذلك، لا يزال نظام ASCII الموسع ذا أهمية بالغة في تاريخ الحوسبة ، وقد استلزم دعم مجموعات أحرف ASCII الموسعة المتعددة كتابة البرامج بطرق سهّلت بشكل كبير دعم طريقة ترميز UTF-8 لاحقًا.

تاريخ

صُممت لغة ASCII في ستينيات القرن العشرين لأجهزة الطباعة عن بُعد والتلغراف ، وبعض تطبيقات الحوسبة. كانت أجهزة الطباعة عن بُعد الأولى كهروميكانيكية، تفتقر إلى المعالجات الدقيقة، وتعتمد فقط على ذاكرة كهروميكانيكية كافية لتشغيلها. كانت تعالج حرفًا واحدًا في كل مرة، ثم تعود إلى وضع الخمول فورًا بعد ذلك؛ مما يعني أن أي تسلسل تحكم يجب أن يكون حرفًا واحدًا فقط، وبالتالي كان لا بد من حجز عدد كبير من الرموز لهذه الأوامر. كانت هذه الأجهزة طابعات تصادمية مشتقة من الآلات الكاتبة ، ولم تكن قادرة إلا على طباعة مجموعة ثابتة من الرموز، والتي كانت تُصب في عنصر أو عناصر معدنية، مما شجع أيضًا على استخدام الحد الأدنى من الرموز.

لقد حسّن نظام ASCII ذو السبع بتات من أداء أنظمة الخمسة والست بتات السابقة. من بين 128 رمزًا ( 2⁷ = 7)، استُخدم 33 رمزًا للتحكم، و95 حرفًا قابلاً للطباعة تم اختيارها بعناية (94 رمزًا ومسافة واحدة)، تشمل الأبجدية الإنجليزية (أحرف كبيرة وصغيرة)، والأرقام، و31 علامة ترقيم ورمزًا: جميع الرموز الموجودة على آلة كاتبة أمريكية قياسية بالإضافة إلى عدد قليل منها مُختار لمهام البرمجة. بعض الأجهزة الطرفية الشائعة لم تُنفذ سوى مجموعة فرعية من 64 حرفًا للطباعة: لم يكن بإمكان جهاز Teletype Model 33 إرسال الأحرف من "a" إلى "z" أو خمسة رموز أقل شيوعًا ( ` ، { ، | ، } ، و ~ ). وعندما استقبل هذه الأحرف، طبعت بدلاً منها الأحرف من "A" إلى "Z" (باستخدام الأحرف الكبيرة فقط ) وخمسة رموز أخرى متشابهة في الغالب ( @ ، [ ، \ ، ] ، و ^ ).

مجموعة أحرف ASCII بالكاد تكفي للاستخدام في اللغة الإنجليزية الأمريكية، وتفتقر إلى العديد من الرموز الشائعة في الطباعة ، وهي صغيرة جدًا للاستخدام العالمي. هناك حاجة إلى المزيد من الأحرف والرموز لتمثيل أحرف الأبجديات الأخرى غير الإنجليزية بشكل مباشر، بالإضافة إلى المزيد من علامات الترقيم والمسافات، والمزيد من العمليات والرموز الرياضية (× ÷ ⋅ ≠ ≥ ≈ π إلخ)، وبعض الرموز الفريدة المستخدمة في بعض لغات البرمجة، والرموز التصويرية ، والرموز اللوغوغرامية ، وأحرف رسم المربعات، وما إلى ذلك.

كانت أكبر مشكلة تواجه مستخدمي الحاسوب حول العالم هي احتياجاتهم من الأبجديات المحلية. فالأبجدية الإنجليزية ASCII تكاد تُغطي اللغات الأوروبية، إذا كُتبت الأحرف المُشكّلة بدون علامات تشكيل أو باستخدام اختصارات من حرفين، مثل ss بدلاً من ß . وسرعان ما ظهرت نسخ محلية مُعدّلة من ASCII ذي 7 بت، استبدلت بعض الرموز الأقل استخدامًا برموز أو أحرف مرغوبة بشدة، مثل استبدال # بـ £ في أجهزة التلكس البريطانية، و \ بـ ¥ في اليابان، و في كوريا، وما إلى ذلك. ونتج عن ذلك 29 مجموعة مُختلفة على الأقل. تم تعديل 12 رمزًا بواسطة مجموعة وطنية واحدة على الأقل، ليتبقى 82 رمزًا "ثابتًا" . ومع ذلك، فقد خصصت لغات البرمجة معاني للعديد من الأحرف المُستبدلة، وتم ابتكار حلول بديلة مثل تسلسلات الأحرف الثلاثة في لغة C ??<لتمثيل { و } . [ ٤ ] يمكن للغات ذات الأبجديات الأساسية المختلفة استخدام النقل الصوتي، مثل استبدال جميع الأحرف اللاتينية بأقرب الأحرف السيريلية (مما ينتج عنه نص غريب ولكنه مقروء إلى حد ما عند طباعة الإنجليزية بالسيريلية أو العكس). كما وُضعت أنظمة تسمح بطباعة حرفين فوق بعضهما (غالبًا مع استخدام مفتاح الحذف بينهما) لإنتاج أحرف مُشكّلة. لم يكن المستخدمون مرتاحين لأي من هذه الحلول الوسطية، وغالبًا ما كانت تفتقر إلى الدعم الكافي.??>

عندما اعتمدت الحواسيب وملحقاتها معيار البايتات الثمانية في سبعينيات القرن الماضي، بات من الواضح أن الحواسيب والبرمجيات قادرة على معالجة النصوص التي تستخدم مجموعات أحرف من 256 حرفًا بتكلفة برمجية إضافية شبه معدومة، ودون أي تكلفة إضافية للتخزين (بافتراض عدم إعادة استخدام البت الثامن غير المستخدم من كل بايت لأي غرض، مثل التحقق من الأخطاء، أو الحقول المنطقية، أو ضغط 8 أحرف في 7 بايتات). هذا من شأنه أن يسمح باستخدام ترميز ASCII دون تغيير، مع توفير 128 حرفًا إضافيًا. ابتكر العديد من المصنّعين مجموعات أحرف ثمانية بتات تتكون من ASCII بالإضافة إلى ما يصل إلى 128 حرفًا من الرموز غير المستخدمة. وبذلك، أصبح بالإمكان ابتكار ترميزات تغطي جميع اللغات الرئيسية في أوروبا الغربية (وأمريكا اللاتينية) وغيرها.

لا يزال 128 حرفًا إضافيًا غير كافٍ لتغطية جميع الأغراض، أو جميع اللغات، أو حتى جميع اللغات الأوروبية، لذا كان ظهور العديد من مجموعات الأحرف الخاصة والمشتقة من ASCII ذات 8 بت أمرًا لا مفر منه. تُعدّ الترجمة بين هذه المجموعات ( إعادة الترميز ) عملية معقدة (خاصةً إذا لم يكن الحرف موجودًا في كلتا المجموعتين)؛ وكثيرًا ما لم تُجرَ، مما ينتج عنه نصٌّ مشوّه (نصٌّ شبه مقروء؛ غالبًا ما كان المستخدمون يتعلمون كيفية فك ترميزه يدويًا). وفي أواخر التسعينيات، بُذلت محاولات للتعاون أو التنسيق بين هيئات المعايير الوطنية والدولية، لكن مجموعات الأحرف الخاصة بالشركات المصنعة ظلت الأكثر شيوعًا بفارق كبير، ويرجع ذلك أساسًا إلى أن المعايير الدولية استبعدت الأحرف الشائعة في ثقافات معينة أو الخاصة بها.

ملحقات خاصة

ظهرت تعديلات وامتدادات مختلفة خاصة بنظام ASCII على أجهزة الكمبيوتر المركزية [ ب ] وأجهزة الكمبيوتر الصغيرة - وخاصة في الجامعات، لتلبية حاجتهم إلى دعم تدريس الرياضيات والعلوم واللغات. 

بدأت شركة هيوليت-باكارد بإضافة الأحرف الأوروبية إلى مجموعة أحرف ASCII الموسعة ذات 7/8 بت، HP Roman Extension، حوالي عامي 1978/1979 لاستخدامها مع محطات العمل والطرفيات والطابعات الخاصة بها. وتطورت هذه المجموعة لاحقًا إلى مجموعتي الأحرف القياسيتين HP Roman-8 و HP Roman-9 ذواتي 8 بت، واللتين تُستخدمان على نطاق واسع (بالإضافة إلى عدد من المتغيرات).

أضافت أجهزة الكمبيوتر المنزلية من أتاري وكومودور العديد من الرموز الرسومية إلى نظام ASCII غير القياسي الخاص بها (على التوالي، ATASCII و PETSCII ، استنادًا إلى معيار ASCII الأصلي لعام 1963).

أضافت مجموعة أحرف TRS -80 الخاصة بجهاز الكمبيوتر المنزلي TRS-80 أربعة وستين حرفًا شبه رسومي (من 0x80 إلى 0xBF) تُنفذ رسومات كتلية منخفضة الدقة. (يُعرض كل حرف رسومي كتلي على شكل شبكة من البكسلات بحجم 2×3، حيث يتحكم أحد البتات الستة السفلى في كل بكسل كتلي). [ 5 ]

قدمت شركة IBM رموز ASCII الموسعة ذات 8 بتات في جهاز IBM PC الأصلي ، ثم أنتجت لاحقًا نسخًا مختلفة منها للغات وثقافات متعددة. أطلقت IBM على مجموعات الأحرف هذه اسم " صفحات الرموز" وخصصت لها أرقامًا مرجعية ، سواءً لتلك التي ابتكرتها بنفسها أو للعديد من الرموز التي ابتكرتها واستخدمتها شركات تصنيع أخرى. وبناءً على ذلك، غالبًا ما يُشار إلى مجموعات الأحرف برقم صفحة الرموز الخاصة بها في IBM. في صفحات الرموز المتوافقة مع ASCII، احتفظت الأحرف الـ 128 السفلى بقيم ASCII القياسية، بينما أمكن توفير صفحات (أو مجموعات أحرف) مختلفة في الأحرف الـ 128 العليا. على سبيل المثال، استخدمت أجهزة كمبيوتر DOS المصممة لسوق أمريكا الشمالية صفحة الرموز 437 ، والتي تضمنت الأحرف المُشكّلة اللازمة للغة الفرنسية والألمانية وبعض اللغات الأوروبية الأخرى، بالإضافة إلى بعض أحرف الرسم الخطي. أتاحت مجموعة الأحرف الأكبر إمكانية إنشاء مستندات بمزيج من اللغات مثل الإنجليزية والفرنسية (مع أن أجهزة الكمبيوتر الفرنسية تستخدم عادةً صفحة الرموز 850 )، ولكن ليس، على سبيل المثال، باللغتين الإنجليزية واليونانية (اللتين تتطلبان صفحة الرموز 737 ). 

قدّمت شركة أبل نظام ترميز ASCII الموسّع الخاص بها ذو الثمانية بتات في نظام التشغيل ماك أو إس ، مثل نظام ماك أو إس رومان . كما قدّمت طابعة أبل ليزر رايتر مجموعة أحرف بوست سكريبت .

طوّرت شركة ديجيتال إكويبمنت (DEC) مجموعة الأحرف متعددة الجنسيات ، التي احتوت على عدد أقل من الأحرف ولكن مع عدد أكبر من تركيبات الأحرف وعلامات التشكيل. وقد دعمتها محطة VT220 ومحطات DEC الطرفية اللاحقة . وأصبحت هذه المجموعة فيما بعد أساسًا لمجموعات أحرف أخرى مثل مجموعة أحرف لوتس الدولية (LICS) و ECMA-94 و ISO 8859-1 .

ISO 8859

في عام ١٩٨٧، نشرت المنظمة الدولية للمعايير (ISO) مجموعة من المعايير لامتدادات ASCII ذات الثمانية بتات، وهي ISO 8859. وكان المعيار الأكثر شيوعًا من بينها هو ISO 8859-1 (المعروف أيضًا باسم "ISO Latin  1")، والذي يحتوي على أحرف كافية لمعظم لغات أوروبا الغربية الشائعة. وشملت المعايير الأخرى في مجموعة 8859 معيار ISO 8859-2 للغات أوروبا الشرقية التي تستخدم الأبجدية اللاتينية، ومعيار ISO 8859-5 للغات التي تستخدم الأبجدية السيريلية ، وغيرها.

من أبرز أوجه الاختلاف بين معايير ISO وبعض مجموعات أحرف ASCII الموسعة الخاصة ببعض الموردين، هو أن أول 32 رمزًا في كتلة الامتداد محجوزة في معيار ISO للاستخدامات التحكمية، ولا تُستخدم للأحرف القابلة للطباعة. [ ج ] تحاكي هذه السياسة كتلة رموز التحكم C0 التي تشغل أول 32 رمزًا من ASCII. وقد تجاهلت مجموعات ASCII الموسعة الأخرى هذا الجانب من المعيار بشكل شبه كامل.

ويندوز-1252

كانت مايكروسوفت تعتزم استخدام معايير ISO 8859 في نظام ويندوز، [ 7 ] لكنها سرعان ما استبدلت رموز التحكم C1 بأحرف إضافية، مما أدى إلى ظهور مجموعة أحرف ويندوز-1252 الخاصة بها. شملت الأحرف المضافة علامات الاقتباس المعقوفة ، والشرطة الطويلة (em dash) ، ورمز اليورو ، والأحرف الفرنسية والفنلندية من معيار ISO-8859-15 . أصبح هذا المعيار الأكثر استخدامًا في العالم لترميز ASCII الموسع، ويُستخدم غالبًا على الإنترنت حتى عند تحديد معيار 8859-1. [ 8 ] [ 9 ]

ارتباك في مجموعة الأحرف

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

تتطلب العديد من بروتوكولات الاتصال ، وأهمها SMTP و HTTP ، وسم ترميز الأحرف للمحتوى بمعرفات مجموعات الأحرف المخصصة من قبل IANA ، وذلك في محاولة لجعل البرامج قادرة على تفسير الترميزات المتعددة بشكل صحيح. مع ذلك، تعتمد الغالبية العظمى من البرامج على إعدادات النظام التي تُشير إلى الترميز المُفضل للمستخدم، أو يتم تجميعها في بيئة افتراضية.

في العصر الحديث، حلّ نظام يونيكود محلّ معظم استخدامات الترميزات غير ASCII. ولأنّ العديد من معايير الإنترنت تستخدم معيار ISO 8859-1، ولأنّ نظام مايكروسوفت ويندوز (لمعظم اللغات المستخدمة في أوروبا الغربية والأمريكتين) يستخدم مجموعة CP1252 الفرعية من معيار ISO 8859-1، فمن الآمن عمومًا افتراض أنّ أيّ سلسلة بايتات غير صالحة بنظام UTF-8 تكون بنظام CP1252 أو إعدادات النظام.

انظر أيضاً

ملحوظات

  1. لأنه يمكن تفسيره بشكل خاطئ على أنه يعني أن المعهد الوطني الأمريكي للمعايير (ANSI) قد قام بتحديث معيار ANSI X3.4-1986 الخاص به ليشمل المزيد من الأحرف، أو أن المصطلح يحدد ترميزًا واحدًا لا لبس فيه، وكلا الأمرين ليسا كذلك.
  2. باستثناء أجهزة الكمبيوتر المركزية من IBM، التي استخدمت ترميز EBCDIC بدلاً من ASCII
  3. وهي محجوزة أيضاً في نظام يونيكود. [ 6 ]

مراجع

  1. بنيامين ريفنشتال (26 فبراير 2001). "ردًا على: معلومات Cygwin Termcap المتعلقة بأحرف ASCII الموسعة" . cygwin (قائمة بريدية). مؤرشف من الأصل في 11 يوليو 2013. تم الاطلاع عليه في 2 ديسمبر 2012 .
  2. إس. ووليكي (23 مارس 2012). "طباعة رموز ASCII الموسعة في sql*plus" . تم الاسترجاع في 17 مايو 2022 .
  3. مارك ج. ريد (28 مارس 2004). "vim: كيف أكتب extended-ascii؟" . مجموعة الأخبار : comp.editors . تم الاسترجاع في 17 مايو 2022 . 
  4. "2.2.1.1 متواليات ثلاثية الأحرف" . الأساس المنطقي للمعيار الوطني الأمريكي لنظم المعلومات - لغة البرمجة - سي . مؤرشف من الأصل في 29 سبتمبر 2018. تم الاطلاع عليه في 8 فبراير 2019 .
  5. غولدكلانغ، إيرا (2015). "نصائح وحيل في التصميم الجرافيكي" . مؤرشف من الأصل في 29 يوليو 2017. تم الاطلاع عليه في 29 يوليو 2017 .
  6. "ضوابط C1 وملحق Latin-1 | النطاق: 0080–00FF" (ملف PDF) . معيار يونيكود، الإصدار 15.1 . اتحاد يونيكود .
  7. "مرجع HTML Windows-1252" . www.w3schools.com . تم الاطلاع عليه بتاريخ 10 فبراير 2025 .
  8. "مجموعات أحرف HTML" . مدارس W3 . عندما يكتشف المتصفح ISO-8859-1، فإنه عادةً ما يستخدم Windows-1252 افتراضيًا، لأن Windows-1252 يحتوي على 32 حرفًا دوليًا إضافيًا.
  9. "الترميز" . WHATWG . 27 يناير 2015. القسم 5.2 الأسماء والتسميات. مؤرشف من الأصل في 4 فبراير 2015. تم الاسترجاع في 4 فبراير 2015 .