Jak przywrócić kodowanie tekstu do UTF-8 za pomocą emacsa?


23

Nagle niektóre moje pliki tekstowe, którymi edytuję, Emacsuległy zmianie i znaki specjalne zostały pokazane w dziwny sposób, np

\344zamiast ä
\374zamiast ü ... i tak dalej.

W innym pliku mam teraz

üdla ü
ädla ä ....

(Nie wiem, które wydarzenie było tego przyczyną, może zrobiłem coś złego.)

Chciałbym przekonwertować dokument z powrotem do stanu oryginalnego (moje standardowe kodowanie to UTF-8), aby wyświetlał się poprawnie za pomocą ä, ö, ü, ... ale nie wiem, jak to zrobić za pomocą emacsa .

Odpowiedzi:


27

Jeśli nie zmieniłeś pliku, możesz spróbować M-x revert-buffer-with-coding-system. Jeden latin-1lub utf-8powinien działać, w zależności od pliku.

Możesz także oznaczyć cały plik za pomocą, C-x ha następnie spróbować M-x recode-region. Poprosi Cię o Text was really ini But was interpreted as. W pierwszym pliku w swoim pytaniu, wygląda tak jak powinno być latin-1i utf-8, a dla drugiego przykładu powinno to prawdopodobnie na odwrót, utf-8i latin-1.

Po prawidłowym ustawieniu możesz wybrać system kodowania, w którym chcesz zapisać plik, używając M-x set-buffer-file-coding-system(lub C-x C-m fw skrócie).


Niestety, potrzebuję tego polecenia dość często, dlatego chciałbym zdefiniować skrót klawiaturowy, aby wywoływać region recode (orig: latin-1, interpretowany jako utf-8-dos) jednym naciśnięciem klawisza. Jak mogę zdefiniować mały program, który to robi i który mogę zmapować na klucz?
MostlyHarmless

1
Możesz zapisać go jako makro, a następnie nazwać, powiązać i zapisać, jak opisano tutaj: gnu.org/software/emacs/manual/html_node/emacs/…
legoscia

1

Najłatwiej znalazłem:

Cx RET r utf-8 RET


Witamy w superużytkowniku: chociaż może to odpowiedzieć na pytanie, ale lepiej odpowiedzieć, jeśli możesz podać jakieś wyjaśnienie („które zdarzenie było przyczyną itp.”) I wyjaśnić, dlaczego Twoje rozwiązanie działa ze szczegółowymi i łatwymi do wykonania instrukcjami ( PO może, ale nie musi zrozumieć, co należy zrobić, a przyszli czytelnicy również mogą być niepewni). Jeśli uważasz, że twoja odpowiedź jest poprawna, wykonaj te czynności i ponownie je edytuj. Poświęć kilka minut i przeczytaj: - superuser.com/help. Odpowiedź: superuser.com/help/how-to-answer , ponownie witamy w superuserie.
Dziękujemy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.