如何使用 emacs 将文本编码切换回 UTF-8?

如何使用 emacs 将文本编码切换回 UTF-8?

突然间,我正在编辑的一些文本文件Emacs发生了变化,特殊字符以奇怪的方式显示,例如

\344ä
\374不是ü ……等等。

在另一个文件中我现在有

ü对于ü
ä对于ä ....

(我不知道哪个事件导致了这种情况,也许我做错了什么。)

我想将文档转换回其原始状态(我的标准编码是 UTF-8),以便正确显示 ä、ö、ü 等,但我不知道如何使用 emacs 来做到这一点。

答案1

如果你还没有更改文件,你可以尝试。或M-x revert-buffer-with-coding-system之一应该可以工作,具体取决于文件。latin-1utf-8

您还可以用 标记整个文件C-x h,然后尝试M-x recode-region。它会要求您输入Text was really inBut was interpreted as。对于您问题中的第一个文件,看起来应该是latin-1utf-8,而对于第二个示例,可能应该是相反的,utf-8latin-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)

结果应该是即时的。

相关内容