Wie kann ich die Textcodierung mit Emacs auf UTF-8 zurücksetzen?


23

Plötzlich hatten sich einige meiner Textdateien, die ich bearbeite, Emacsgeändert und Sonderzeichen wurden auf seltsame Weise angezeigt, z

\344statt ä
\374statt ü ... und so weiter.

In einer anderen Datei habe ich jetzt

üfür ü
äfür ä ....

(Ich weiß nicht, welches Ereignis die Ursache dafür war, vielleicht habe ich etwas falsch gemacht.)

Ich möchte das Dokument wieder in den ursprünglichen Zustand zurückversetzen (meine Standardkodierung ist UTF-8), damit es mit ä, ö, ü, ... korrekt angezeigt wird, aber ich weiß nicht, wie ich das mit Emacs machen soll .

Antworten:


27

Wenn Sie die Datei nicht geändert haben, können Sie es versuchen M-x revert-buffer-with-coding-system. Eine von latin-1oder utf-8sollte funktionieren, abhängig von der Datei.

Sie können auch die gesamte Datei mit markieren C-x hund dann versuchen M-x recode-region. Es wird dich nach Text was really inund fragen But was interpreted as. Für die erste Datei in Ihrer Frage, es sieht aus wie es sein soll latin-1und utf-8, und für das zweite Beispiel sollte es wohl umgekehrt sein, utf-8und latin-1.

Nachdem Sie es richtig gemacht haben, können Sie mit M-x set-buffer-file-coding-system(oder C-x C-m fkurz) auswählen, mit welchem ​​Codierungssystem die Datei gespeichert werden soll .


Leider brauche ich diesen Befehl ziemlich oft, daher möchte ich eine Tastenkombination definieren, um den Recode-Bereich (orig: latin-1, interpretiert als utf-8-dos) mit einem Tastendruck aufzurufen. Wie kann ich ein kleines Programm definieren, welches das macht und welches ich einem Schlüssel zuordnen kann?
Meistens ohne Wärme

1
Sie können es als Makro aufzeichnen und dann wie hier beschrieben benennen, binden und speichern: gnu.org/software/emacs/manual/html_node/emacs/…
legoscia

1

Der einfachste Weg, den ich gefunden habe, ist:

Cx RET r utf-8 RET


Willkommen beim Superuser: Hiermit kann die Frage zwar beantwortet werden oder auch nicht. Es ist jedoch eine bessere Antwort, wenn Sie eine Erklärung abgeben ('welches Ereignis die Ursache war usw.') und begründen, warum Ihre Lösung mit detaillierten und leicht zu befolgenden Anweisungen funktioniert ( Das OP kann verstehen oder nicht verstehen, was zu tun ist, und zukünftige Leser können auch unsicher sein. Wenn Sie der Meinung sind, dass Ihre Antwort korrekt ist, gehen Sie folgendermaßen vor und bearbeiten Sie sie erneut. Bitte nehmen Sie ein paar Minuten und lesen: - superuser.com/help .Answering: superuser.com/help/how-to-answer , wieder zu superuser.Thankyou begrüßen
mic84
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.