Comment repasser l'encodage de texte en UTF-8 avec emacs?

23

Soudain, certains de mes fichiers texte que je Emacsmodifie avec ont changé et des caractères spéciaux ont été affichés d'une manière étrange, par exemple

\344au lieu de ä
\374au lieu de ü ... et ainsi de suite.

Dans un autre fichier, j'ai maintenant

üpour ü
äpour ä ....

(Je ne sais pas quel événement a été la cause de cela, peut-être que j'ai fait quelque chose de mal.)

Je voudrais reconvertir le document à son état d'origine (mon encodage standard est UTF-8), afin qu'il s'affiche correctement avec ä, ö, ü, ... mais je ne sais pas comment faire cela avec emacs .

La plupart du temps inoffensifs
la source

Réponses:

27

Si vous n'avez pas modifié le fichier, vous pouvez essayer M-x revert-buffer-with-coding-system. L'un latin-1ou utf-8devrait fonctionner, selon le fichier.

Vous pouvez également marquer l'intégralité du fichier avec C-x h, puis réessayer M-x recode-region. Il vous demandera Text was really inet But was interpreted as. Pour le premier fichier de votre question, il semble qu'il devrait être latin-1et utf-8, et pour le deuxième exemple, il devrait probablement être l'inverse, utf-8et latin-1.

Une fois que vous avez bien compris, vous pouvez choisir le système de codage pour enregistrer le fichier en utilisant M-x set-buffer-file-coding-system(ou C-x C-m fpour faire court).

legoscia
la source
Malheureusement, j'ai souvent besoin de cette commande, donc je voudrais définir un raccourci clavier pour appeler la région de recode (orig: latin-1, interprété comme utf-8-dos) avec une seule touche. Comment puis-je définir un petit programme, qui fait cela et que je peux mapper à une clé?
MostlyHarmless
1
Vous pouvez l'enregistrer en tant que macro, puis le nommer, le lier et l'enregistrer comme décrit ici: gnu.org/software/emacs/manual/html_node/emacs/…
legoscia
1

Le moyen le plus simple que j'ai trouvé est:

Cx RET r utf-8 RET

pilgix
la source
Bienvenue au superutilisateur: bien que cela puisse ou non répondre à la question, il serait préférable de fournir des explications (`` quel événement a été la cause, etc. '') et pourquoi votre solution fonctionne avec des détails et des instructions faciles à suivre ( le PO peut ou non comprendre ce qui doit être fait et les futurs lecteurs peuvent également être incertains). Si vous pensez que votre réponse est correcte, veuillez procéder comme suit et rééditer. Veuillez prendre quelques minutes et lire: - superuser.com/help .Réponse: superuser.com/help/how-to-answer , encore une fois bienvenue à superuser.Thankyou
mic84