突然间,我正在编辑的一些文本文件Emacs
发生了变化,特殊字符以奇怪的方式显示,例如
\344
而ä
\374
不是ü
……等等。
在另一个文件中我现在有
ü
对于ü
ä
对于ä
....
(我不知道哪个事件导致了这种情况,也许我做错了什么。)
我想将文档转换回其原始状态(我的标准编码是 UTF-8),以便正确显示 ä、ö、ü 等,但我不知道如何使用 emacs 来做到这一点。
答案1
如果你还没有更改文件,你可以尝试。或M-x revert-buffer-with-coding-system
之一应该可以工作,具体取决于文件。latin-1
utf-8
您还可以用 标记整个文件C-x h
,然后尝试M-x recode-region
。它会要求您输入Text was really in
和But was interpreted as
。对于您问题中的第一个文件,看起来应该是latin-1
和utf-8
,而对于第二个示例,可能应该是相反的,utf-8
和latin-1
。
正确之后,您可以选择使用哪种编码系统M-x set-buffer-file-coding-system
(或C-x C-m f
简称)来保存文件。
答案2
我发现的最简单的方法是:
Cx RET r utf-8 RET
答案3
我尝试了上面的最佳答案,但并没有完全解决我的问题。因此,补充一下...
如果重新打开文件时问题仍然存在,则也可能是由于变量 enable-multibyte-characters 为零。
新的缓冲区通常将其作为 t(这就是为什么您可以轻松地将 utf-8 字符粘贴到缓冲区中)。
要修复此问题,您需要执行以下操作:(set-buffer-multibyte 't)
结果应该是即时的。