Case sensitivity

From Wikipedia, the free encyclopedia
Jump to: navigation, search
A case-sensitive WLAN login screen.

Text sometimes exhibits case sensitivity; that is, words can differ in meaning based on differing use of uppercase and lowercase letters. Words with capital letters do not always have the same meaning when written with lowercase letters. For example, :

The opposite term of "case-sensitive" is "case-insensitive". In computers, some examples of usually case-sensitive data are:

Some computer languages are case sensitive for their identifiers (C, C++, Java, C#, Verilog,[1] Ruby[2] and XML). Others are case-insensitive (i.e., not case-sensitive), such as Ada, most BASICs (an exception being BBC BASIC), Fortran, SQL[3] and Pascal. There are also languages, such as Haskell, Prolog and Go, in which the capitalization of an identifier encodes information about its semantics.

A text search operation could be case-sensitive or case-insensitive, depending on the system, application, or context. A case-insensitive search could be more convenient, not requiring the user to provide the precise casing, and returning more results, while a case-sensitive search enables the user to focus more precisely on a narrower result set. For example, Google searches are generally case-insensitive.[4] In Oracle SQL most operations and searches are case-sensitive by default,[5] while in most other DBMS's SQL searches are case-insensitive by default.[6] In most Internet browsers, the "Find in this page" feature has an option enabling the user to choose whether the search would be case-sensitive or not.

Case-insensitive operations are sometimes said to fold case, from the idea of folding the character code table so that upper- and lower-case letters coincide. The alternative smash case is more likely to be used by someone that considers this behaviour a misfeature or in cases wherein one case is actually permanently converted to the other.

A case-sensitive system (Unix-like)

In Unix filesystems, filenames are usually case-sensitive (there can be separate readme.txt and Readme.txt files in the same directory). macOS is somewhat unusual in that it uses HFS+ in a case-insensitive (so that there cannot be a readme.txt and a Readme.txt in the same directory) but case-preserving mode (so that a file created as readme.txt is shown as readme.txt and a file created as Readme.txt is shown as Readme.txt) by default. This causes some issues for developers and power users, because most other environments are case sensitive, but many Mac Installers fail on case sensitive file systems.

Old Windows filesystems (VFAT, FAT32) are not case-sensitive but are case-preserving. The original FAT12 filesystem was case-insensitive and not case-preserving (so that a file saved as readme.txt or as Readme.txt is shown as README.TXT).[7] Current Windows file systems, like NTFS, are case-sensitive; that is a readme.txt and a Readme.txt can exist in the same directory. However, the API for file access in Windows applications is case-insensitive, which makes filenames case-insensitive from the application's point of view. Therefore, applications only have access to one of the files whose filenames only differ in case, and some commands may fail if the filename provided is ambiguous.[8]

References[edit]

  1. ^ Kernighan, Brian W.; Dennis M. Ritchie (February 1978). "Chapter 2: Types, Operators and Expressions". The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. p. 33. ISBN 0-13-110163-3. 
  2. ^ Matsumoto, Yukihiro (January 2002). "Chapter 2: Language Basics". Ruby in a nutshell (1st ed.). O'Reilly Media. p. 9. ISBN 0-596-00214-9. 
  3. ^ Although one can explicitly set a single database or column collation to be case-sensitive
  4. ^ "case-sensitive-search - case sensitive google search - Google Project Hosting". Code.google.com. Retrieved 2013-05-20. 
  5. ^ http://docs.oracle.com/cd/E12151_01/doc.150/e12152.pdf#page=103
  6. ^ "MySQL :: MySQL 5.0 Reference Manual :: C.5.5.1 Case Sensitivity in String Searches". Dev.mysql.com. Retrieved 2013-05-20. 
  7. ^ "Case Sensitivity in Subsystem for UNIX-based Applications". Technet.microsoft.com. 2005-08-22. Retrieved 2013-05-20. 
  8. ^ "Filenames are Case Sensitive on NTFS Volumes". Support.microsoft.com. 2006-11-01. Retrieved 2013-05-20.