Sensibilité à la casse
Dans du texte, la casse (minuscule ou majuscule) des lettres peut parfois changer la signification. Les mots en lettres capitales (haut de casse) n'ont pas toujours le même sens s'ils sont écrits en minuscules (bas-de-casse). Par exemple, Rennes est une ville mais rennes désigne des caribous. Dans le Système international d'unités, M est le symbole du préfixe méga et m celui de milli. L'unité newton doit son nom à Newton. Et en astronomie, l'étoile HD 189733 B n'est pas la planète HD 189733 b.
La sensibilité à la casse (traduction de l'anglais case sensitivity) est une notion informatique signifiant que dans un contexte donné, le sens d'une chaîne de caractères (par exemple un mot, un nom de variable, un nom de fichier, un code alphanumérique etc) dépend de la casse (capitale ou bas de casse) des lettres qu'elle contient.
Ce terme tire son origine de la casse en typographie.
La sensibilité à la casse peut intervenir dans le tri par ordre alphabétique comme dans les comparaisons.
La sensibilité à la casse s'applique typiquement :
- Aux systèmes de gestion des fichiers (nommage des fichiers), surtout dans les systèmes de la famille Unix ;
- Aux mots clés et aux identifiants de nombreux langages informatiques (C, C++, C#, Java, Python, PHP, XML et de nombreux autres). Cependant, d'autres langages sont insensibles à la casse, comme Fortran, BASIC, Pascal, Ada, Common Lisp, HTML, ou encore SQL ;
- Aux comptes d'utilisateur ;
- Aux mots de passe.
Lorsqu'un ordinateur compare plusieurs textes pour évaluer s'ils sont identiques, il peut le faire en tenant compte de leur casse ou non ; la comparaison de deux chaînes de caractères alphanumériques est généralement plus complexe en mode insensible à la casse et dépend du codage des chaînes de caractères données ; plus il est simple, plus simple est le calcul. Ainsi, une comparaison sur une chaîne codée en ASCII et ne contenant donc pas de caractères accentués sera sensiblement plus rapide qu'en UTF-8 (unicode/ ISO-10646).
Les fonctions de hachage en MD2, en MD5 ou en SHA256 sont également sensibles à la casse.
Historique et perspectives
Historiquement, la comparaison d'octets est la plus ancienne, la plus rudimentaire et la moins utile des comparaisons de chaîne de caractères.
Des bibliothèques ont été développées pour gérer l'insensibilité à la casse sur les caractères ASCII non accentués.
Unicode a ouvert de nouvelles perspectives en standardisant à un niveau mondial chaque caractère.
Standardisation et normalisation
La sensibilité à la casse est dépendante du codage de caractère utilisé, et éventuellement des paramètres de régionalisation.
Elle peut également être impactée par les problématiques de Normalisation Unicode.
Unicode définit des concepts précis relatifs à la casse des caractères. Par exemple, toute lettre majuscule n'a pas nécessairement une minuscule et vice versa.
Applications
Linguistique
Le français est sensible à la casse : les noms Joule (physicien britannique) et joule (unité de mesure d'énergie) n'ont pas la même casse, ce qui permet de les distinguer à l'écrit.
Web
Dans l'adresse d'une page web, la partie qui correspond au nom du serveur n'est pas sensible à la casse, tandis que la partie qui correspond au « chemin » qui mène à la page sur le serveur est sensible à la casse. Ainsi, l'adresse http://fr.wikipedia.org peut s'écrire indifféremment en bas-de-casse ou en majuscules (http://FR.WIKIPEDIA.ORG), mais l'adresse http://fr.wikipedia.org/wiki/Accueil ne peut pas être rédigée comme ceci : http://fr.wikipedia.org/WIKI/ACCUEIL
Le logiciel MediaWiki utilisé par Wikipédia est (pour la référence à une page) sensible à la casse sauf pour le premier caractère. Ainsi, il y a un distinguo entre BAC et bac ; mais pas entre Bac et bac. À l'inverse, le Wiktionnaire distingue par exemple Bac de bac : la sensibilité à la casse y concerne tous les caractères y compris le premier.
Systèmes de fichiers
Certains systèmes de fichiers sont insensibles à la casse. L'unicité du nom de fichier implique que deux utilisations différentes de casse désigneront un même fichier: Le fichier test.jpg sera le même fichier que le fichier TEST.JPG. Mais le fichier blé.jpg sera tout de même différent du fichier ble.jpg.
D'autres systèmes de fichiers sont sensibles à la casse, ceci signifie que test.jpg et TEST.JPG sont deux fichier différents.
Comptes messagerie
Les adresses e-mail telles que décrites dans la RFC 5321 sont sensibles à la casse pour ce qui concerne la local-part (à gauche du @). Toutefois, cette sensibilité est à la charge des serveurs de messagerie, dont beaucoup ne respectent pas cette règle.