Emacs LispプログラムにASCII以外の文字を含む文字列定数がある場合、これらはEmacs内でユニバイト文字列またはマルチバイト文字列として表現されます(テキスト表現を参照)。どちらの表現が使用されるかは、ファイルがどのようにEmacsに読み込まれるかによって決まります。マルチバイト表現へのデコードを行って読み込んだ場合、Lispプログラムのテキストはマルチバイトテキストとなり、その文字列定数はマルチバイト文字列になります。(例えば)Latin-1文字を含むファイルをデコードせずに読み込んだ場合、プログラムのテキストはユニバイトテキストとなり、その文字列定数はユニバイト文字列になります。コーディングシステムを参照してください。
ほとんどの Emacs Lisp プログラムでは、非ASCII文字列がマルチバイト文字列であることは意識する必要はありません。ユニバイトバッファに挿入すると、自動的にユニバイトに変換されるためです。ただし、これが問題となる場合は、ローカル変数セクションに
‘coding: raw-text’ と記述することで、特定の Lisp
ファイルを強制的にユニバイトとして解釈させることができます。この指定子を用いると、そのファイルは無条件にユニバイトとして解釈されます。これは、?vliteral と記述された非ASCII文字にキーバインドを設定する場合などに重要となります。