Bagaimana cara beralih kembali pengkodean teks ke UTF-8 dengan emacs?

23

Tiba-tiba beberapa file teks saya, saya edit dengan Emacstelah berubah dan karakter khusus ditampilkan dengan cara yang aneh, misalnya

\344bukannya ä
\374bukannya ü ... dan seterusnya.

Di file lain sekarang saya miliki

üuntuk ü
äuntuk ä ....

(Saya tidak tahu acara mana yang menjadi penyebabnya, mungkin saya telah melakukan sesuatu yang salah.)

Saya ingin mengonversi dokumen kembali ke keadaan semula (pengodean standar saya adalah UTF-8), sehingga dokumen itu ditampilkan dengan benar dengan ä, ö, ü, ... tapi saya tidak tahu bagaimana melakukannya dengan emacs .

Sebagian besar tidak berbahaya
sumber

Jawaban:

27

Jika Anda belum mengubah file, Anda dapat mencoba M-x revert-buffer-with-coding-system. Salah satu latin-1atau utf-8harus berfungsi, tergantung pada file.

Anda juga dapat menandai seluruh file dengan C-x hlalu mencoba M-x recode-region. Itu akan meminta Anda untuk Text was really indan But was interpreted as. Untuk file pertama dalam pertanyaan Anda, sepertinya seharusnya latin-1dan utf-8, dan untuk contoh kedua mungkin harus sebaliknya, utf-8dan latin-1.

Setelah Anda melakukannya dengan benar, Anda dapat memilih sistem pengkodean mana untuk menyimpan file dengan menggunakan M-x set-buffer-file-coding-system(atau C-x C-m fsingkatnya).

legoscia
sumber
Sayangnya, saya perlu perintah itu cukup sering, jadi saya ingin mendefinisikan cara pintas keyboard untuk memanggil recode-region (orig: latin-1, diartikan sebagai utf-8-dos) dengan satu keystroke. Bagaimana saya bisa mendefinisikan program kecil, yang melakukan itu dan yang saya bisa memetakan ke kunci?
MostlyHarmless
1
Anda dapat merekamnya sebagai makro, dan kemudian beri
legoscia
1

Cara termudah yang saya temukan adalah:

Cx RET r utf-8 RET

pilgix
sumber
Selamat datang di superuser: Meskipun ini mungkin atau mungkin tidak menjawab pertanyaan, itu akan menjadi jawaban yang lebih baik jika Anda bisa memberikan beberapa penjelasan ('acara mana yang menjadi penyebab, dll') dan mengapa solusi Anda bekerja dengan detail dan mudah untuk mengikuti instruksi ( OP mungkin atau mungkin tidak memahami apa yang perlu dilakukan dan pembaca di masa depan juga mungkin tidak yakin). Jika Anda merasa jawaban Anda benar, silakan lakukan hal-hal ini dan edit kembali. Silakan luangkan beberapa menit dan baca: - superuser.com/help. Menjawab: superuser.com/help/how-to-answer , sekali lagi selamat datang di superuser.Terima kasih
mic84