当 Emacs Lisp 程序中包含带有非 ASCII 字符的字符串常量时, 这些字符在 Emacs 内部可以表示为单字节字符串或多字节字符串(see Text Representations)。 具体使用哪种表示方式,取决于文件被读入 Emacs 的方式。 如果读取时经过解码并转为多字节表示,Lisp 程序的文本就是多字节文本, 其字符串常量也将是多字节字符串。 如果包含 Latin-1 字符(举例)的文件在读取时**未经过解码**, 程序文本将是单字节文本,其字符串常量也将是单字节字符串。 See Coding Systems。
在大多数 Emacs Lisp 程序中,非ASCII 字符串是多字节字符串这一点通常不会被察觉,
因为将它们插入到单字节缓冲区时会自动转换为单字节。
但是,如果这确实会带来影响,你可以通过在局部变量区中写入
‘coding: raw-text’,强制某个 Lisp 文件被按单字节解析。
使用该标记后,文件将无条件地被当作单字节处理。
在为写成 ?vliteral 形式的非 ASCII 字符设置按键绑定时,这一点可能很重要。