Les caractères sont des objets qui représentent un élément dans une quantité de texte (par exemple une string ou un flux de texte).
Un caractère s'écrit #\ suivi de son nom (par exemple #\A, #\9, #\!, #\Space).
En plus de char=, char< et char>, il existe aussi char<= et char>=, ainsi que des versions insensibles à la casse comme char-equal et char-greaterp.
Les caractères peuvent être convertis en nombres entiers, et inversement. (Mais ce ne sont pas des nombres entiers : ils constituent un type distinct.) La spécification laisse l'ordre exact des caractères à l'implémentation. Il faut donc se garder de présumer que (char> #\a #\A), ou de faire des suppositions similaires sur l'ordre des caractères. La norme précise en revanche que (char< #\A #\Z), (char< #\a #\z) et (char< #\0 #\9) doivent être vrais.
Common Lisp dispose de plusieurs prédicats pour déterminer le « type » d'un caractère donné, comme alphanumericp, digit-char-p et graphic-char-p. Il existe aussi upper-case-p et lower-case-p pour déterminer la casse d'un caractère.