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


23

突然,我正在编辑的某些文本文件Emacs已更改,特殊字符以奇怪的方式显示,例如

\344而不是ä
\374代替ü ...等。

在另一个文件中,我现在有

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

(我不知道是哪个事件造成的,也许我做错了。)

我想将文档转换回其原始状态(我的标准编码为UTF-8),以便可以使用ä,ö,ü...正确显示它,但是我不知道如何使用emacs进行显示。 。

Answers:


27

如果您尚未更改文件,则可以尝试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-1and utf-8,对于第二个示例,它应该看起来像是utf-8and latin-1

正确设置之后,您可以选择使用哪个编码系统来保存文件M-x set-buffer-file-coding-systemC-x C-m f简称)。


不幸的是,我经常需要该命令,所以我想定义一个键盘快捷键,以一次击键调用recode-region(原始代码:latin-1,解释为utf-8-dos)。我如何定义一个小程序,该程序可以将其映射到键?
MostlyHarmless 2014年

1
你可以记录它作为一个宏,然后命名,绑定并保存如下所述:gnu.org/software/emacs/manual/html_node/emacs/...
legoscia

1

我发现的最简单方法是:

Cx RET rutf-8 RET


欢迎使用超级用户:虽然这可能会回答问题,也可能不会回答问题,但是如果您可以提供一些解释(“是哪个事件等的原因”)以及您的解决方案为何详细且易于遵循的说明,那么这将是一个更好的答案( OP可能会或可能不会理解需要做什么,并且未来的读者也可能不确定)。如果您认为答案正确,请执行以下操作并重新编辑。请花几分钟的时间,并宣读: - superuser.com/help .Answering:superuser.com/help/how-to-answer,再次欢迎superuser.Thankyou
mic84
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.