في أجهزة الكمبيوتر وكذلك في العديد من المواقع، حالة النص قد تكون حساسة لحالة الأحرف (Case Sensitivity) كما يُمكن أن تكون غير حساسة لحالة الأحرف أو بالأحرى غير مكترثة. وفيما يلي بعض الأمثلة على حساسية حالة الأحرف، هذا وتجدر الإشارة إلى أن حساسية حالة الأحرف هذه في بعض الأحيان تكون غير مفعلة:
- الوسوم
- أمر (حوسبة) (أو الأوامر)
- أسماء المتغيرات
- النصوص المتسلسلة أو عمليات البحث ضمن النصوص الإلكترونية والتي عادة ما تكون حساسة لحالة الأحرف، حيث يتطلب العثور عليه كتابته كما هو.
- كلمات السر في العادة ما تكون حساسة لحالة الأحرف إلا في بعض المواقع القليلة جدا والتي يُمكن تجاهلها.
هناك بعض اللغات البرمجية الحساسة هي الأخرى لحالة الأحرف ولعل أبرزها السي، السي++، الجافا، السي شارب،[1] روبي[2] وكذلك الإكس إم إل، في حين أن هناك لغات برمجة أخرى غير حساسة لحالة الأحرف ولا تأبه إن تمَّ طباعته بشكل كبير (مثلا A) أو بشكله الصغير (a)، ومن بين هذه اللغات هناك الأيدا، البيسيك، الفورتران، الإس كيو إل[3] ثم باسكال. وهناك أيضا لغات أخرى غير حساسة مثل هاسكل، برولوغ ولغة غو التي تهتم بعلم الدلالة الشكلي.
إن البحث عن مجموعة من الحروف أو الكلمات في نص معين قد يكون حساسا لحالة الأحرف وقد يكون لا وذلك حسب نظام التطبيق أو البرنامج ثم اللغة التي تمت برمجته بها، كما يمكن للمستخدم في كثير من الحالات تحديد ما إذا كان يُفضل البحث بحالة حساسة للأحرف من عدمها، على سبيل المثال في معظم برامج تحرير النصوص ومتصفحات الويب هناك إمكانية اختيار تفعيل خاصية حساسية حالة الأحرف أو اختيار إلغائها، وقد أصبحت قضية حساسية حالة الأحرف عند البحث في موقع ما أكثر شمولا في الفترة الأخيرة، فمثلا عند البحث عن "Language" (لاحظ أن الحرف الأول من الكلمة كُتب بشكل كبير)، ثم عند البحث عن "language" (لاحظ أن كل الأحرف صغيرة) ثم البحث عن "LANGUAGE" (كل حروف الكلمة كُتبت بشكل كبير)؛ فإن حساسية حالة الأحرف في هذه الحالة ستأخذ منحى آخر حيث أن لغة الكمبيوتر لن تجد سوى الكلمة "الأساسية"؛ وفي المقابل ستقوم باستبعاد كل الحالات والكلمات غير المرغوب فيها. على سبيل المثال محرك البحث جوجل هو في الأساس حساس لحالة الأحرف عند البحث عن موضوع ما، وكل تغيير في حرف معين سيؤدي إلى نتائج مختلفة ولو نسبيا عن النتائج الأولى.[4] في قاعدة بيانات أوراكل فإن معظم عمليات البحث حساسة لحالة الأحرف وذلك بشكل افتراضي، [5] ونفس الأمر ينطبق على باقي قواعد البيانات حيث أن خاصية الحساسية بالنسبة لحالة الأحرف تأتي مُفعلة مع النظام (تأتي مُفَعَّلَةَ بشكل افتراضي).[6]
إن نظام أو أنظمة الملفات في شبيه يونكس عادة ما تكون حساسة لحالة الأحرف (يُمكن كتابة ملفين؛ فالأول يحمل اسم readme.txt ثم الثاني يحمل اسم Readme.txt في نفس الجهاز[a]. أما الماك أوس فعادة ما تأتي فيه خاصية حساسية حالة الأحرف مُفعلة بشكل افتراضي، حيث أنه يستخدم HFS+ في حالة الأحرف (ما يعني أنه لا يمكن كتابة ملفين باسم readme.txt وReadme.txt في نفس الجهاز على عكس شبيه يونكس) لكن وفي المقابل يُمكن فتح ملف تحت اسم readme.txt وآخر يحمل نفس اسمه أي readme.txt ونفس الأمر ينطبق عند إنشاء ملف Readme.txt حيث يُمكن بعدها فتح آخر بنفس الاسم أي Readme.txt، لكن هذا قد يشكل خللا أو بالأحرى مشكلة لبعض للمطورين والمستخدمين السلطوين، لأن معظم البيئات الأخرى تكون حساسة من نوع آخر، لذلك فالعديد من التثبيتات تفشل في بسبب قضية حساسية أنظمة الملفات.
أقدم مايكروسوفت ويندوز على جعل نظام الملفات الخاص بـ VFAT وFAT32 غير حساسان لحالة الأحرف، ولكن يتم الحفاظ على الحالة. في وقت سابق كان نظام الملفات FAT12 حساسا لحالة الأحرف لكنه يستطيع الحفاظ على الحالة، فحتى لو فتحت ملف باسم readme.txt ثم آخر باسم ReadMe.txt سيتم حفظ الملفان التمهيديان.[7] وفي وقت لاحق، جعلت ويندوز أنظمة ملفات أخرى مثل NTFS حساسة لحالة الأحرف، لذلك فقد تمكنت من جعل الملفان readme.txt وReadme.txt يقبلان التنزيل أو الفتح في نفس الجهاز، حيث يعتبرهم هذا الأخير ملفان مختلفا الاسم ولو أنهم في الحقيقة متطابقان (الفرق فقط في حجم حرف واحد لا غير).[8]
ملاحظات
- لاحظ أنه ليس هناك فرق في اسم الملفين معا، باستثناء أن الثاني يضم حرفا كبيرا بينما الأول يضم نفس الحرف في وضعيته الصغيرة
المراجع
- Kernighan, Brian W.; دينيس ريتشي (February 1978). "Chapter 2: Types, Operators and Expressions". [[لغة البرمجة سي (كتاب)]] (الطبعة 1st). Englewood Cliffs, NJ: برنتيس هول . صفحة 33. . مؤرشف من الأصل في 15 ديسمبر 2019.
- Matsumoto, Yukihiro (January 2002). "Chapter 2: Language Basics". Ruby in a nutshell (الطبعة 1st). أوريلي ميديا. صفحة 9. . مؤرشف من الأصل في 15 ديسمبر 2019.
- Although one can explicitly set a single database or column collation to be case-sensitive نسخة محفوظة 27 مايو 2019 على موقع واي باك مشين.
- "case-sensitive-search - case sensitive google search - Google Project Hosting". Code.google.com. مؤرشف من الأصل في 31 ديسمبر 201520 مايو 2013.
- ( كتاب إلكتروني PDF ) https://web.archive.org/web/20180616232752/https://docs.oracle.com/cd/E12151_01/doc.150/e12152.pdf. مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 16 يونيو 2018.
- "MySQL :: MySQL 5.0 Reference Manual :: C.5.5.1 Case Sensitivity in String Searches". Dev.mysql.com. مؤرشف من الأصل في 10 مايو 201620 مايو 2013.
- "Case Sensitivity in Subsystem for UNIX-based Applications". Technet.microsoft.com. 2005-08-22. مؤرشف من الأصل في 9 مارس 201620 مايو 2013.
- "Filenames are Case Sensitive on NTFS Volumes". Support.microsoft.com. 2006-11-01. مؤرشف من الأصل في 12 فبراير 201520 مايو 2013.