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.


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


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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.