Ketika saya ingin mengirim email yang saya buat di Emacs, saya menekan C-c C-c
dan 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-8
sebagai pengkodean ketika saya menerima pesan ini dan hanya berfungsi! Tetapi pesan mengatakan bahwa utf-8-unix
tidak dapat menyandikan beberapa karakter.
Adakah yang bisa memberi tahu saya mengapa Emacs tidak dapat memilih utf-8
secara default dan apa arti pesan kesalahan ini dalam konteks ini?
EDIT 2015/02/05
Saya menggunakan mu4e
dan 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-8
tapi 'utf-8-unix
).
EDIT 2015/02/06
Saya juga mencoba M-x set-keyboard-coding-system utf-8
dan (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-mail
ada t
. Jadi saya kira masalahnya ada pada fitur antrian email.
sumber
utf-8
dalam semua buffer membantu?(setq-default buffer-file-coding-system 'utf-8)
mu4e
.(set-keyboard-coding-system 'utf-8)
membantu?Jawaban:
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:
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. (Periksa48.2.4 Local Variables
di File di manual Emacs.)sumber
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:sumber
Dengan semua pengaturan di atas jendela pengkodean terus muncul. Saya melakukan lebih banyak penyelidikan dan saya menemukan pengaturan itu:
Memecahkan masalah bagi saya. Saya sedang mengerjakan Mac OS 10.14.5, Emacs 26.1.
sumber