Case sensitivity

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Jon Kolbert (talk | contribs) at 06:18, 26 August 2017 (Updating links from HTTP→HTTPS for Microsoft TechNet). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A case-sensitive WLAN login screen.

Text sometimes exhibits case sensitivity; that is, words can differ in meaning, or can be distinguished in a computer search, based on differing use of capital and lowercase letters. Words usually mean the same when written with capital and with lowercase letters, but not always; for example:

  • The first name of former U.S. president Clinton is Bill; he could have signed a legislative bill.
  • A Polish person can use polish to clean or shine something.
  • In food, the Calorie, with a capital C, is sometimes used to denote 1000 calories of energy, a kilocalorie. However, the distinction between Calorie and calorie is often not maintained in practice.
  • Many acronyms which are the same as words are written with capital letters: basic is similar to fundamental, while BASIC is the Beginner's All-purpose Symbolic Instruction Code, a computer language.

The opposite term of "case-sensitive" is "case-insensitive".

Computers

In computers, the following are sometimes case-sensitive, sometimes not:

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. The user can in many cases specify whether a search is sensitive to case, e.g. in most text editors, word processors, and Web browsers. A case-insensitive search is more comprehensive, finding "Language" (at the beginning of a sentence), "language", and "LANGUAGE" (in a title in capitals); a case-sensitive search will find the computer language "BASIC" but exclude most of the many unwanted instances of the word. For example, the Google search engine is basically case-insensitive, with no option for case-sensitive search.[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]

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.

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.

The older Microsoft Windows filesystems VFAT and FAT32 are not case-sensitive, but are case-preserving. The earlier FAT12 filesystem was case-insensitive and not case-preserving, so that a file whose name is entered as readme.txt or ReadMe.txt is saved as README.TXT.[7] Later Windows file systems such as NTFS are internally case-sensitive, and a readme.txt and a Readme.txt can coexist in the same directory. However, for practical purposes filenames behave as case-insensitive as far as users and most software are concerned.[8]

References

  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.