Utilizzo della codifica UTF8 come impostazione predefinita durante la scrittura di e-mail


8

Quando voglio inviare un'e-mail che ho composto in Emacs, premo C-c C-ce mi viene sempre presentato un messaggio di errore del genere:

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

A questo punto posso selezionare manualmente una codifica e la mia e-mail viene inviata. Quello che non capisco è che seleziono sempre utf-8la codifica quando ricevo questo messaggio e funziona! Ma il messaggio diceva che utf-8-unixnon è possibile codificare alcuni caratteri.

Qualcuno può dirmi perché Emacs non può selezionare utf-8per impostazione predefinita e cosa significa questo messaggio di errore in questo contesto?

MODIFICA 2015/02/05

Sto usando mu4ee ho provato (setq-default buffer-file-coding-system 'utf-8)senza successo (dopo aver valutato questa espressione, se inizio a scrivere una nuova e-mail, il valore della variabile non è 'utf-8ma 'utf-8-unix).

MODIFICA 2015/02/06

Ho anche provato M-x set-keyboard-coding-system utf-8e (setq mm-coding-system-priorities '(utf-8))ma questo non ha avuto effetti visibili.

MODIFICA 2015/02/21

Ho appena notato che questo problema si verifica solo se lo smtpmail-queue-mailè t. Quindi immagino che il problema sia nella funzione di accodamento e-mail.


L'incantesimo da preferire utf-8in tutti i buffer aiuta? (setq-default buffer-file-coding-system 'utf-8)
PythonNut,

Quale mailer stai usando? RMAIL, Gnus, Wanderlust?
dal

@jch È taggato mu4e.
PythonNut

Ho risposto modificando la domanda
Damien Cassou,

l'impostazione può (set-keyboard-coding-system 'utf-8)aiutare?
Nome

Risposte:


4

Ho affrontato molto questo problema. La codifica dipenderà dalle informazioni nel file. Se non ci sono informazioni nel file esplicitamente per determinare di cosa si tratta, è possibile ottenere cose come sopra.

Se il tuo lavoro non coinvolge molti sistemi antichi che richiedono una codifica diversa, potresti considerare di forzare la codifica UTF-8 predefinita ovunque . È praticamente uno standard al giorno d'oggi, almeno in Occidente (per me comunque), in quanto è dominante sul Web; ha un mapping uno a uno con ASCII; abbastanza flessibile da rappresentare qualsiasi personaggio unicode nel mondo. Ma per far sì che Emacs usi UTF-8 ovunque per impostazione predefinita:

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

Una volta valutato, Emacs tratterà nuovi file, buffer, processi e così via come se fossero UTF-8. Tieni presente che Emacs utilizzerà comunque un sistema di codifica diverso se il file ha una variabile file-local come questa -*- coding: euc-tw -*-nella parte superiore del file. (Controlla i 48.2.4 Local Variablesfile nel manuale di Emacs.)


Ho aggiunto queste righe a .emacs. Tuttavia, se creo un nuovo file TeX, "file -bi" riporta comunque che è codificato come us-ascii. Qualche idea?
Painfulenglish

1

Uso Emacs integrato compose-mail(Cx m) per inviare e-mail e ho riscontrato problemi simili durante la codifica. Non sono sicuro che questo possa aiutarti:

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

nessun effetto (ho modificato la domanda)
Damien Cassou,

0

Con tutte le impostazioni sopra le finestre di codifica hanno continuato a essere visualizzate. Ho fatto più indagini e ho scoperto che l'impostazione:

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

Risolto il problema per me. Sto lavorando su Mac OS 10.14.5, Emacs 26.1.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.