Як переключити кодування назад тексту на UTF-8 за допомогою emacs?


23

Раптом деякі мої текстові файли, які я редагую Emacs, змінилися, і спеціальні символи були показані дивним чином, наприклад

\344замість ä
\374замість ü … тощо.

В іншому файлі я зараз є

üдля ü
äдля ä ....

(Я не знаю, яка подія стала причиною цього, можливо, я щось робив не так.)

Я хотів би перетворити документ назад у його початковий стан (моє стандартне кодування - UTF-8), щоб він відображався правильно з ä, ö, ü, ... але я не знаю, як це зробити з emacs .

Відповіді:


27

Якщо ви не змінили файл, можете спробувати M-x revert-buffer-with-coding-system. Один latin-1або utf-8повинен працювати, залежно від файлу.

Ви також можете позначити весь файл C-x hі спробувати M-x recode-region. Він попросить вас Text was really inі But was interpreted as. Для першого файлу в вашому питанні, схоже , вона повинна бути latin-1і utf-8, так і для другого прикладу слід , ймовірно , буде навпаки, utf-8і latin-1.

Після того, як ви правильно зрозуміли, ви можете вибрати, в якій системі кодування зберегти файл за допомогою M-x set-buffer-file-coding-system(або C-x C-m fкоротко).


На жаль, мені потрібна ця команда досить часто, тому я хотів би визначити ярлик клавіатури, щоб викликати recode-region (orig: latin-1, інтерпретується як utf-8-dos) одним натисканням клавіші. Як я можу визначити невелику програму, що робить це і яку я можу зіставити на ключ?
Здебільшого безрукий

1
Ви можете записати його як макрос, а потім назвати, прив’язувати та зберігати, як описано тут: gnu.org/software/emacs/manual/html_node/emacs/…
legoscia

1

Найпростіший спосіб, який я знайшов:

Cx RET r utf-8 RET


Ласкаво просимо до суперпользователя: Хоча це може чи не може відповісти на питання, було б кращою відповіддю, якщо ви могли б дати пояснення ("яка подія стала причиною тощо") і чому ваше рішення працює детально і легко виконувати інструкції ( ОП може чи не може зрозуміти, що потрібно зробити, і майбутні читачі також можуть бути не впевнені). Якщо ви вважаєте, що ваша відповідь правильна, будь ласка, зробіть це та повторно відредагуйте. Будь-ласка, знайдіть пару хвилин і прочитайте: - superuser.com/help. Відповідь: superuser.com/help/how-to-answer , знову ласкаво просимо до
суперпользователя.Thankyou
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.