Menggunakan pengkodean UTF8 sebagai standar saat menulis email

8

Ketika saya ingin mengirim email yang saya buat di Emacs, saya menekan C-c C-cdan selalu disajikan dengan pesan kesalahan seperti itu:

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.
[...]

Pada titik ini saya dapat secara manual memilih penyandian dan email saya dikirim. Apa yang saya tidak mengerti adalah bahwa saya selalu memilih utf-8sebagai pengkodean ketika saya menerima pesan ini dan hanya berfungsi! Tetapi pesan mengatakan bahwa utf-8-unixtidak dapat menyandikan beberapa karakter.

Adakah yang bisa memberi tahu saya mengapa Emacs tidak dapat memilih utf-8secara default dan apa arti pesan kesalahan ini dalam konteks ini?

EDIT 2015/02/05

Saya menggunakan mu4edan saya mencoba (setq-default buffer-file-coding-system 'utf-8)tanpa hasil (setelah mengevaluasi ungkapan ini, jika saya mulai menulis email baru, nilai variabel tidak 'utf-8tapi 'utf-8-unix).

EDIT 2015/02/06

Saya juga mencoba M-x set-keyboard-coding-system utf-8dan (setq mm-coding-system-priorities '(utf-8))tetapi ini tidak memiliki efek yang terlihat.

EDIT 2015/02/21

Saya baru saja memperhatikan masalah ini hanya terjadi jika smtpmail-queue-mailada t. Jadi saya kira masalahnya ada pada fitur antrian email.

Damien Cassou
sumber
Apakah mantra yang disukai utf-8dalam semua buffer membantu? (setq-default buffer-file-coding-system 'utf-8)
PythonNut
Mailer mana yang Anda gunakan? RMAIL, Gnus, Wanderlust?
jch
@ Jch Ini ditandai mu4e.
PythonNut
Saya menjawab dengan mengedit pertanyaan
Damien Cassou
dapatkah pengaturan (set-keyboard-coding-system 'utf-8)membantu?
Nama

Jawaban:

4

Saya sudah banyak berurusan dengan masalah ini. Pengkodean akan tergantung pada informasi dalam file. Jika tidak ada informasi dalam file secara eksplisit untuk menentukan apa itu, Anda bisa mendapatkan hal-hal seperti di atas.

Jika pekerjaan Anda tidak melibatkan banyak sistem kuno yang memerlukan pengkodean berbeda, Anda dapat mempertimbangkan untuk memaksa pengkodean UTF-8 default di mana-mana . Ini praktis standar saat ini, setidaknya di Barat (bagi saya sih), karena dominan di Web; memiliki pemetaan satu-ke-satu dengan ASCII; cukup fleksibel untuk mewakili karakter unicode di dunia. Tetapi untuk membuat Emacs menggunakan UTF-8 di mana saja secara default:

(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)

Setelah dievaluasi, Emacs akan memperlakukan file baru, buffer, proses, dan seterusnya seolah-olah mereka UTF-8. Perlu diingat Emacs masih akan menggunakan sistem pengkodean yang berbeda jika file tersebut memiliki variabel file-lokal seperti ini di -*- coding: euc-tw -*-dekat bagian atas file. (Periksa 48.2.4 Local Variablesdi File di manual Emacs.)

EHartC
sumber
Saya telah menambahkan baris ini ke .emacs. Namun, jika saya membuat file TeX baru, "file -bi" masih melaporkan bahwa file tersebut dikodekan sebagai us-ascii. Ada ide?
painfulenglish
1

Saya menggunakan Emacs built-in compose-mail(Cx m) untuk mengirim email dan mengalami masalah serupa pada penyandian. Saya tidak yakin apakah ini akan membantu Anda:

(setq mm-coding-system-priorities '(utf-8))
kuanyui
sumber
tidak berpengaruh (saya sudah mengedit pertanyaan)
Damien Cassou
0

Dengan semua pengaturan di atas jendela pengkodean terus muncul. Saya melakukan lebih banyak penyelidikan dan saya menemukan pengaturan itu:

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

Memecahkan masalah bagi saya. Saya sedang mengerjakan Mac OS 10.14.5, Emacs 26.1.

Adam Faryna
sumber