Emacs 搜索或转换八进制序列
我用pdftk解压了一个PDF文件,我正试图用regexp在Emacs中编辑它 问题是该文件有重音字符,Emacs将它们显示为八进制序列:例如,Emacs 搜索或转换八进制序列,emacs,elisp,Emacs,Elisp,我用pdftk解压了一个PDF文件,我正试图用regexp在Emacs中编辑它 问题是该文件有重音字符,Emacs将它们显示为八进制序列:例如,\340表示a。要编辑这个文件,我有两种可能性(至少我这么认为) a) 应用编码,使Emacs将显示实际的重音字符,而不是其八进制等效字符。Vim已正确显示重音字符 b) 用正则表达式搜索八进制序列 至于a),我尝试过(设置缓冲区文件编码系统“utf-8-dos),(设置缓冲区文件编码系统“utf-8-unix),(设置缓冲区文件编码系统”原始文本),但
\340
表示a。要编辑这个文件,我有两种可能性(至少我这么认为)
a) 应用编码,使Emacs将显示实际的重音字符,而不是其八进制等效字符。Vim已正确显示重音字符
b) 用正则表达式搜索八进制序列
至于a),我尝试过(设置缓冲区文件编码系统“utf-8-dos),(设置缓冲区文件编码系统“utf-8-unix),(设置缓冲区文件编码系统”原始文本),但没有成功
对于b),在应用set缓冲区文件编码系统后,我能够用C-q。。。RET
,但我无法做我真正需要的事情:替换字符串。事实上,C-q。。。使用M-%
或C-M-%
时,RET与八进制序列不匹配<代码>C-x 8`…
也不起作用
提前谢谢。
Antonio在访问PDF文件的缓冲区中尝试以下键序列: C-x RET r字符编码RET 这将使用指定的字符编码重新访问文件 或者,如果要在访问文件之前指定要使用的字符编码,可以执行以下操作 C-x RET C字符编码RET 在键入C-x C-f之前
有关更多详细信息,请参阅。在访问PDF文件的缓冲区中尝试以下键序列: C-x RET r字符编码RET 这将使用指定的字符编码重新访问文件 或者,如果要在访问文件之前指定要使用的字符编码,可以执行以下操作 C-x RET C字符编码RET 在键入C-x C-f之前 有关详细信息,请参阅。@Stefan 事实上,我不是在谈论储蓄的区别,而是在展示方面 在这两种情况下,关闭和重新打开文件都会使文件保持原样,没有明显的更改。 至于显示,使用
(设置缓冲区文件编码系统windows-1252-unix)
时,模式行从(unix)--
变为(unix)**-
,表示代码系统没有发生变化,实际上缓冲区中的字符是相同的(八进制序列仍然存在)
使用(使用编码系统“windows-1252-unix”还原缓冲区)时,模式行从(unix)--
更改为*(unix)--
,表示代码系统已更改为windows-12**
,根据M-x列表编码系统
mnemonic,事实上,八进制序列以其等效重音字符显示
如果我将(设置缓冲区文件编码系统'windows-1252-unix)
应用于其他缓冲区,例如scratch,则后者将从1 \-
更改为*(unix)**
。因此,对于这个缓冲区,有一个实际的和公布的变化,从latin-1-dos
到windows-1252-unix
这很可能是一个连贯的设计,我不知道
安东尼奥@Stefan
事实上,我不是在谈论储蓄的区别,而是在展示方面
在这两种情况下,关闭和重新打开文件都会使文件保持原样,没有明显的更改。
至于显示,使用(设置缓冲区文件编码系统windows-1252-unix)
时,模式行从(unix)--
变为(unix)**-
,表示代码系统没有发生变化,实际上缓冲区中的字符是相同的(八进制序列仍然存在)
使用(使用编码系统“windows-1252-unix”还原缓冲区)时,模式行从(unix)--
更改为*(unix)--
,表示代码系统已更改为windows-12**
,根据M-x列表编码系统
mnemonic,事实上,八进制序列以其等效重音字符显示
如果我将(设置缓冲区文件编码系统'windows-1252-unix)
应用于其他缓冲区,例如scratch,则后者将从1 \-
更改为*(unix)**
。因此,对于这个缓冲区,有一个实际的和公布的变化,从latin-1-dos
到windows-1252-unix
这很可能是一个连贯的设计,我不知道
Antonio你能在某处上传PDF样本吗?这里是新手,希望有可能发布链接。无论如何,我刚刚创建了一个单行测试文件:。在Emacs中,查看第47行,注意如何手动将
\340
替换为a,保存并在PDF查看器中重新打开它。单个高位八进制字符肯定不是UTF-8。尝试使用CP1252或CP850。你能在某处上传PDF样本吗?这里是新手,希望有可能发布链接。无论如何,我刚刚创建了一个单行测试文件:。在Emacs中,查看第47行,注意如何手动将\340
替换为a,保存并在PDF查看器中重新打开它。单个高位八进制字符肯定不是UTF-8。尝试使用CP1252或CP850。问题解决了!感谢您的记录,编码为windows-1252-unix
aliascp1252 unix
或通常为带unix行结尾的ANSI。奇怪的是(设置缓冲区文件编码系统'windows-1252-unix)
不起作用,(使用编码系统'windows-1252-unix还原缓冲区)
起作用。好处是,通过这种编码,可以修改(使用regexp)“未压缩”的PDF,保存它并在查看器中重新打开,这可能会引起其他人的兴趣。替换八进制码的搜索主题可能仍然很有趣。@antonjo:你为什么说“奇怪”C-h f设置缓冲区文件编码系统
清楚地说:“这