Case sensitivity
From Wikipedia, the free encyclopedia
| This article needs additional citations for verification. Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (December 2007) |
- For a discussion of case-sensitivity in Wikipedia page titles, see Help:Page name and Wikipedia:Naming conventions (capitalization).
Text sometimes exhibits case sensitivity, that is, words can differ in meaning based on the differing use of uppercase and lowercase letters. Words with capital letters don't always have the same meaning as words with lowercase letters. For example, Bill is the name of former US president (Clinton) who signs a bill (which is a proposed law put before a legislature).
When a computer compares two words to decide whether they are equal, it may or may not consider words equal which only differ in case.
This is relevant e.g. with regard to:
- usernames
- passwords
- filenames
- commands
- variable names
- web page addresses
- when the user applies a search function to search for a text string
Some computer languages are case sensitive (Java, C++, C[1], Ruby[2] and XML) while others are case insensitive (i.e. not case sensitive), for example most BASICs (an exception being BBC BASIC) and Pascal. There are also languages, such as Haskell and Prolog, in which the capitalization of an identifier encodes information about its semantics.
Often, computer passwords are case sensitive and computer user names are not, which can be confusing for the inexperienced user. Passwords are often made case sensitive to make them harder to guess, whereas making usernames harder to guess or remember is not an advantage.
It takes more work for a program to ignore case when comparing data, depending on the data being compared. Usually it suffices in text coded in character sets like ASCII or EBCDIC to merely convert the comparand and the data temporarily to one case and then compare, however it becomes far more challenging in a multi-lingual environment, e.g., using Unicode, since case-conversion rules differ between some languages; for example, in German the uppercase form for the sharp s ("ß") is "SS".
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 who considers this behaviour a misfeature or in cases where one case is actually permanently converted to the other.
- ^ 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, page 33. ISBN 0-13-110163-3.
- ^ Matsumoto, Yukihiro (January 2002). "Chapter 2: Language Basics", Ruby in a nutshell, 1st ed., O'Reilly Media, page 9. ISBN 0-596-00214-9.