ケースセンシティブ【case-sensitive】
概要

英語などの表記に用いられるラテンアルファベットには、一つの文字に「大文字」(uppercaseまたはcapital letter)と「小文字」(lowercaseまたはsmall letter)があり、その区別のことを「ケース」(case)という。
文字コードの規格では、大文字の「A」と小文字の「a」にはそれぞれ異なる番号が割り当てられており、コンピュータにとって両者は本来別のデータである。ケースセンシティブな処理はこの区別をそのまま比較に反映し、ケースインセンシティブな処理では自動的に変換して揃えるといった内部処理により両者を同一視する。
コンピュータ上の文字の処理では、例えばパスワード認証はケースセンシティブに行われる。「Password」と「password」は異なる文字列として判定されるため、入力時に正確な大文字・小文字の一致が求められる。使用できる文字の組み合わせが増えることで、不正な解読に対する強度も高まる。
ファイルシステムでのファイル名などの扱いはオペレーティングシステム(OS)によって異なる。LinuxなどUNIX系OSでは一般にケースセンシティブであり、「readme.txt」と「README.txt」は別ファイルとして同じディレクトリに共存できる。Windowsは内部的には本来の文字を保持しているが処理上はケースインセンシティブで動作するため、両者を同名とみなす。この違いは、異なるOS間でファイルをやり取りする際に問題になることがある。
プログラミング言語のシンボル名などの扱いは言語によって分かれる。C言語やJavaをはじめ現代の言語の大半はケースセンシティブだが、古くはCOBOL、Fortran、BASICなどケースインセンシティブな言語も一般的だった。SQLでは命令などは一般にケースインセンシティブだが、テーブル名や列名の扱いはデータベース製品によって異なる。HTMLのタグ名もケースインセンシティブだが、JavaScriptはシンボル名がケースセンシティブなため、スクリプトで操作する際は注意が必要な場合がある。
URLではドメイン名部分がケースインセンシティブと定められているが、パス以降はサーバのOSや設定やファイルシステムの仕様に依存し、UNIX系サーバではケースセンシティブに扱われることが多い。また、検索機能やデータベースの照合でも、ケースセンシティブかどうかで結果が変わるため、システム設計や運用時に意識すべき設定の一つである。