Skiftlägeskänslighet

Från Wikipedia
Hoppa till: navigering, sök

Skiftlägeskänslighet (engelska: case sensitivity) innebär i datortekniska sammanhang att versaler och gemener åtskiljs. Begreppet används vid jämförelser av strängar (texter) för att beteckna huruvida jämförelsen normaliserar texten så att versaler och gemener av samma bokstav ses som lika eller ej.

En jämförelse som är skiftlägeskänslig skulle leda till att strängarna "ord" och "ord" är lika, men inte strängarna "ord" och "Ord".

I praktiken genomförs en skiftlägeskänslig jämförelse genom att jämföra strängarna som dataströmmar där tecknen är kodade enligt en viss teckenkodning. I en teckenkodning kan till exempel stora A ha värdet 65, medan lilla a har värdet 97. Vid jämförelsen är dessa olika och strängarna skiljer sig från varandra. Ofta är man tvungen att normalisera strängarna först, det vill säga konvertera dem till en form där för jämförelsen oväsentliga skillnader tagits bort: till exempel kan é i UTF8 kodas antingen som "e" + akut accent eller som "é" och då väljer man endera som normalform.

En skiftlägesokänslig jämförelse å andra sidan normaliseras strängarna ytterligare, till exempel så att alla bokstäver kodas som versaler, och sedan göra samma jämförelse som vid skiftlägeskänslighet.

Normaliseringen kan i vissa fall behöva vara språkberoende. På tyska blir till exempel ß och ss lika efter normalisering. Turkiska använder I på ett speciellt sätt, vilket gör att I och ı räknas som lika, men skilda från İ och i.

Många filformat som läses främst av datorer är skiftlägeskänsliga, till exempel xml (<index> och <INDEX> är olika koder) och källkod för C- och Java-program, men det finns även exempel på sådana format som är skiftlägesokänsliga, till exempel html (<head> och <HEAD> är samma kod) och källkod för Pascal-program.