16.4 加载非 ASCII 字符

当 Emacs Lisp 程序中包含带有非 ASCII 字符的字符串常量时, 这些字符在 Emacs 内部可以表示为单字节字符串或多字节字符串(see Text Representations)。 具体使用哪种表示方式,取决于文件被读入 Emacs 的方式。 如果读取时经过解码并转为多字节表示,Lisp 程序的文本就是多字节文本, 其字符串常量也将是多字节字符串。 如果包含 Latin-1 字符(举例)的文件在读取时**未经过解码**, 程序文本将是单字节文本,其字符串常量也将是单字节字符串。 See Coding Systems

在大多数 Emacs Lisp 程序中,非ASCII 字符串是多字节字符串这一点通常不会被察觉, 因为将它们插入到单字节缓冲区时会自动转换为单字节。 但是,如果这确实会带来影响,你可以通过在局部变量区中写入 ‘coding: raw-text’,强制某个 Lisp 文件被按单字节解析。 使用该标记后,文件将无条件地被当作单字节处理。 在为写成 ?vliteral 形式的非 ASCII 字符设置按键绑定时,这一点可能很重要。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike