1

我已经用 pdftk 解压缩了一个 PDF 文件,我正在尝试用 regexp 在 Emacs 中编辑它。

问题是这个文件有重音字符并且 Emacs 将它们显示为八进制序列:例如\340对于 à。要编辑这个文件,我有两种可能性(至少我是这么认为的)。

a) 应用一种编码,这样 Emacs 将显示实际的重音字符,而不是它们的等效八进制字符。Vim 已经正确显示重音字符;

b) 使用正则表达式搜索八进制序列。

至于a),我试过(set-buffer-file-coding-system 'utf-8-dos)、(set-buffer-file-coding-system 'utf-8-unix)、(set-buffer-file -coding-system 'raw-text) 没有成功。

至于 b),在应用 set-buffer-file-coding-system 之后,我可以使用 增量搜索八进制序列C-q ... RET,但我无法做我真正需要的事情:替换字符串。事实上 ,使用orC-q ... RET时不匹配八进制序列。 也不行。M-%C-M-%C-x 8 `...

提前致谢。安东尼奥

4

2 回答 2

1

在访问 PDF 文件的缓冲区中尝试以下键序列:

C-x RET r 字符编码 RET

这将使用您指定的字符编码重新访问文件。

或者,如果您想在访问文件之前指定要使用的字符编码,您可以这样做

C-x RET c 字符编码 RET

就在打字之前C-x C-f

有关更多详细信息,请参阅文档

于 2012-11-26T03:34:47.757 回答
0

@斯特凡

其实我说的不是保存的区别,而是显示的区别。

在这两种情况下,关闭和重新打开文件都会使文件保持原样,没有明显的变化。至于显示,(set-buffer-file-coding-system 'windows-1252-unix)模式行从(Unix) ---变为(Unix) **-,表示代码系统没有发生变化,实际上缓冲区中的字符是相同的(八进制序列仍然存在)。

使用 (revert-buffer-with-coding-system 'windows-1252-unix) 时,模式行从(Unix) ---变为* (Unix) ---表示代码系统已更改为windows-12**,根据M-x list-coding-systems助记符,实际上八进制序列以其等效的重音字符显示.

如果我应用(set-buffer-file-coding-system 'windows-1252-unix)到其他缓冲区,例如从头开始,后者会从1\--变为* (Unix) **。因此,对于这个缓冲区,从到一个实际的和广告上的变化。latin-1-doswindows-1252-unix

这可能有一个连贯的设计,我不知道。

安东尼奥

于 2012-11-26T17:12:22.477 回答