Sử dụng mã hóa UTF8 làm mặc định khi viết email


8

Khi tôi muốn gửi email tôi đã soạn trong Emacs, tôi nhấn C-c C-cvà luôn luôn xuất hiện một thông báo lỗi như vậy:

These default coding systems were tried to encode text
in the buffer `2015-02-03_19:08:30_1':
  (utf-8-unix (302 . 4194243) (303 . 4194208) (305 . 4194243) (306 .
  4194217) (308 . 4194243) (309 . 4194221) (311 . 4194243) (312 .
  4194227))
However, each of them encountered characters it couldn't encode:
  utf-8-unix cannot encode these:        

Click on a character (or switch to this window by `M-o'
and select the characters by RET) to jump to the place it appears,
where `C-u M-x what-cursor-position' will give information about it.
[...]

Tại thời điểm này tôi có thể tự chọn mã hóa và email của tôi được gửi. Điều tôi không hiểu là tôi luôn chọn utf-8mã hóa khi nhận được tin nhắn này và nó chỉ hoạt động! Nhưng thông báo nói rằng utf-8-unixkhông thể mã hóa một số ký tự.

Ai đó có thể cho tôi biết tại sao Emacs không thể chọn utf-8theo mặc định và thông báo lỗi này có ý nghĩa gì trong ngữ cảnh này không?

EDIT 2015/02/05

Tôi đang sử dụng mu4evà tôi đã cố gắng (setq-default buffer-file-coding-system 'utf-8)nhưng không thành công (sau khi đánh giá biểu thức này, nếu tôi bắt đầu viết một email mới, giá trị của biến không phải là 'utf-8nhưng 'utf-8-unix).

EDIT 2015/02/06

Tôi cũng đã thử M-x set-keyboard-coding-system utf-8(setq mm-coding-system-priorities '(utf-8))điều này không có hiệu quả rõ ràng.

EDIT 2015/02/21

Tôi chỉ nhận thấy vấn đề này chỉ xảy ra nếu smtpmail-queue-mailt. Vì vậy, tôi đoán vấn đề là trong tính năng xếp hàng email.


Liệu câu thần chú để thích utf-8trong tất cả các bộ đệm giúp? (setq-default buffer-file-coding-system 'utf-8)
PythonNut 3/2/2015

Bạn đang sử dụng mailer nào? RMAIL, Gnus, Wanderlust?
JCH

@jch Nó được gắn thẻ mu4e.
PythonNut 4/2/2015

Tôi đã trả lời bằng cách chỉnh sửa câu hỏi
Damien Cassou 5/2/2015

các thiết lập có thể (set-keyboard-coding-system 'utf-8)giúp đỡ?
Tên

Câu trả lời:


4

Tôi đã giải quyết vấn đề này rất nhiều. Việc mã hóa sẽ phụ thuộc vào thông tin trong tệp. Nếu không có thông tin trong tệp một cách rõ ràng để xác định nó là gì, bạn có thể nhận được những thứ như trên.

Nếu công việc của bạn không liên quan đến nhiều hệ thống cổ xưa yêu cầu mã hóa khác nhau, bạn có thể xem xét để buộc mã hóa UTF-8 mặc định ở mọi nơi . Thực tế ngày nay nó là một tiêu chuẩn, ít nhất là ở phương Tây (đối với tôi dù thế nào đi nữa), vì nó chiếm ưu thế trên Web; có ánh xạ một-một với ASCII; đủ linh hoạt để đại diện cho bất kỳ nhân vật unicode nào trên thế giới. Nhưng để làm cho Emacs sử dụng UTF-8 ở mọi nơi theo mặc định:

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-language-environment 'utf-8)

Sau khi được đánh giá, Emacs sẽ xử lý các tệp mới, bộ đệm, quy trình, v.v. như thể chúng là UTF-8. Hãy nhớ rằng Emacs vẫn sẽ sử dụng một hệ thống mã hóa khác nếu tệp có biến cục bộ tệp như thế này -*- coding: euc-tw -*-ở gần đầu tệp. (Kiểm tra 48.2.4 Local Variablestệp trong hướng dẫn sử dụng Emacs.)


Tôi đã thêm những dòng này vào .emacs. Tuy nhiên, nếu tôi tạo một tệp TeX mới, "tệp -bi" vẫn báo cáo rằng nó được mã hóa dưới dạng us-ascii. Có ý kiến ​​gì không?
Painfulenglish 7/2/2016

1

Tôi sử dụng Emacs tích hợp compose-mail(Cx m) để gửi email và gặp phải vấn đề tương tự về mã hóa. Tôi không chắc chắn nếu điều này sẽ giúp bạn:

(setq mm-coding-system-priorities '(utf-8))

không có tác dụng (tôi đã chỉnh sửa câu hỏi)
Damien Cassou 6/2/2015

0

Với tất cả các cài đặt ở trên, các cửa sổ mã hóa tiếp tục hiển thị. Tôi đã điều tra thêm và tôi phát hiện ra thiết lập đó:

(setq message-default-charset 'utf-8)
(add-to-list 'mm-body-charset-encoding-alist '(utf-8 . base64))

Giải quyết vấn đề cho tôi. Tôi đang làm việc trên Mac OS 10.14.5, Emacs 26.1.

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.