Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 搜索或转换八进制序列_Emacs_Elisp - Fatal编程技术网

Emacs 搜索或转换八进制序列

Emacs 搜索或转换八进制序列,emacs,elisp,Emacs,Elisp,我用pdftk解压了一个PDF文件,我正试图用regexp在Emacs中编辑它 问题是该文件有重音字符,Emacs将它们显示为八进制序列:例如,\340表示a。要编辑这个文件,我有两种可能性(至少我这么认为) a) 应用编码,使Emacs将显示实际的重音字符,而不是其八进制等效字符。Vim已正确显示重音字符 b) 用正则表达式搜索八进制序列 至于a),我尝试过(设置缓冲区文件编码系统“utf-8-dos),(设置缓冲区文件编码系统“utf-8-unix),(设置缓冲区文件编码系统”原始文本),但

我用pdftk解压了一个PDF文件,我正试图用regexp在Emacs中编辑它

问题是该文件有重音字符,Emacs将它们显示为八进制序列:例如,
\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
alias
cp1252 unix
或通常为带unix行结尾的ANSI。奇怪的是
(设置缓冲区文件编码系统'windows-1252-unix)
不起作用,
(使用编码系统'windows-1252-unix还原缓冲区)
起作用。好处是,通过这种编码,可以修改(使用regexp)“未压缩”的PDF,保存它并在查看器中重新打开,这可能会引起其他人的兴趣。替换八进制码的搜索主题可能仍然很有趣。@antonjo:你为什么说“奇怪”
C-h f设置缓冲区文件编码系统
清楚地说:“这