Làm cách nào để chuyển lại mã hóa văn bản thành UTF-8 bằng emacs?


23

Đột nhiên một số tệp văn bản của tôi, tôi đang chỉnh sửa Emacsđã thay đổi và các ký tự đặc biệt được hiển thị theo một cách lạ, ví dụ:

\344thay vì thay ä
\374ü ... và cứ thế.

Trong một tập tin khác, bây giờ tôi có

ücho ü
ächo ä ....

(Tôi không biết sự kiện nào là nguyên nhân cho điều đó, có lẽ tôi đã làm sai điều gì đó.)

Tôi muốn chuyển đổi tài liệu về trạng thái ban đầu (mã hóa tiêu chuẩn của tôi là UTF-8), để nó được hiển thị chính xác với ä, ö, ü, ... nhưng tôi không biết làm thế nào với emacs .

Câu trả lời:


27

Nếu bạn chưa thay đổi tập tin, bạn có thể thử M-x revert-buffer-with-coding-system . Một latin-1hoặc utf-8nên làm việc, tùy thuộc vào tập tin.

Bạn cũng có thể đánh dấu toàn bộ tệp C-x hvà sau đó thử M-x recode-region. Nó sẽ yêu cầu bạn cho Text was really inBut was interpreted as. Đối với các tập tin đầu tiên trong câu hỏi của bạn, có vẻ như nó phải là latin-1utf-8, và cho ví dụ thứ hai nó có lẽ nên là cách khác xung quanh,utf-8latin-1.

Sau khi bạn hiểu đúng, bạn có thể chọn hệ thống mã hóa nào để lưu tệp bằng cách sử dụng M-x set-buffer-file-coding-system(hoặc C-x C-m fviết tắt).


Thật không may, tôi cần lệnh đó khá thường xuyên, vì vậy tôi muốn xác định một phím tắt để gọi vùng recode (orig: latin-1, được hiểu là utf-8-dos) bằng một lần nhấn phím. Làm thế nào tôi có thể xác định một chương trình nhỏ, chương trình nào và tôi có thể ánh xạ tới một khóa?
Chủ yếu là vô dụng

1
Bạn có thể ghi lại dưới dạng macro, sau đó đặt tên, liên kết và lưu nó như được mô tả ở đây: gnu.org/software/emacs/manual/html_node/emacs/ Lỗi
legoscia

1

Cách dễ nhất tôi tìm thấy là:

Cx RET r utf-8 RET


Chào mừng bạn đến với superuser: Mặc dù điều này có thể hoặc không thể trả lời câu hỏi, nhưng sẽ là câu trả lời tốt hơn nếu bạn có thể đưa ra một số lời giải thích ('sự kiện nào là nguyên nhân, v.v.) và tại sao giải pháp của bạn hoạt động chi tiết và dễ làm theo hướng dẫn ( OP có thể hoặc không thể hiểu những gì cần phải làm và độc giả tương lai cũng có thể không chắc chắn). Nếu bạn cảm thấy câu trả lời của mình là chính xác, hãy làm những điều này và chỉnh sửa lại. Vui lòng dành vài phút và đọc: - superuser.com/help. Trả lời: superuser.com/help/how-to-answer , một lần nữa chào mừng bạn đến với superuser.Thankyou
mic84
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.