Utilisation du codage UTF8 par défaut lors de la rédaction d'e-mails

8

Lorsque je veux envoyer un e-mail que j'ai composé dans Emacs, j'appuie C-c C-cet je reçois toujours un tel message d'erreur:

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

À ce stade, je peux sélectionner manuellement un encodage et mon e-mail est envoyé. Ce que je ne comprends pas, c'est que je sélectionne toujours utf-8comme encodage quand je reçois ce message et ça marche! Mais le message disait que utf-8-unixne pouvait pas encoder certains personnages.

Quelqu'un peut-il me dire pourquoi Emacs ne peut pas sélectionner utf-8par défaut et ce que ce message d'erreur signifie dans ce contexte?

EDIT 2015/02/05

J'utilise mu4eet j'ai essayé (setq-default buffer-file-coding-system 'utf-8)sans succès (après avoir évalué cette expression, si je commence à écrire un nouvel e-mail, la valeur de la variable n'est pas 'utf-8mais 'utf-8-unix).

EDIT 2015/02/06

J'ai également essayé M-x set-keyboard-coding-system utf-8et (setq mm-coding-system-priorities '(utf-8))cela n'a eu aucun effet visible.

EDIT 2015/02/21

Je viens de remarquer ce problème ne se produit que si smtpmail-queue-mailest t. Je suppose donc que le problème réside dans la fonction de mise en file d'attente des e-mails.

Damien Cassou
la source
L'incantation à préférer utf-8dans tous les tampons est-elle utile? (setq-default buffer-file-coding-system 'utf-8)
PythonNut
Quel expéditeur utilisez-vous? RMAIL, Gnus, Wanderlust?
jch
@jch C'est tagué mu4e.
PythonNut
J'ai répondu en modifiant la question
Damien Cassou
le réglage peut-il (set-keyboard-coding-system 'utf-8)aider?
Nom

Réponses:

4

J'ai beaucoup traité de cette question. L'encodage dépendra des informations contenues dans le fichier. S'il n'y a aucune information dans le fichier pour déterminer de manière explicite ce que c'est, vous pouvez obtenir des choses comme ci-dessus.

Si votre travail n'implique pas beaucoup de systèmes anciens qui nécessitent un codage différent, vous pouvez envisager de forcer le codage UTF-8 par défaut partout . C'est pratiquement un standard de nos jours, du moins en Occident (pour moi en tout cas), car il est dominant sur le Web; a un mappage un à un avec ASCII; suffisamment flexible pour représenter n'importe quel caractère unicode dans le monde. Mais pour que Emacs utilise UTF-8 partout par défaut:

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

Une fois évalué, Emacs traitera les nouveaux fichiers, tampons, processus, etc. comme s'ils étaient UTF-8. Gardez à l'esprit qu'Emacs utilisera toujours un système de codage différent si le fichier a une variable locale de fichier comme celle-ci -*- coding: euc-tw -*-près du haut du fichier. (Archivez les 48.2.4 Local Variablesfichiers dans le manuel Emacs.)

EHartC
la source
J'ai ajouté ces lignes à .emacs. Cependant, si je crée un nouveau fichier TeX, "file -bi" signale toujours qu'il est encodé en us-ascii. Des idées?
painfulenglish
1

J'utilise Emacs intégré compose-mail(Cx m) pour envoyer des e-mails et j'ai rencontré un problème similaire sur l'encodage. Je ne sais pas si cela pourrait vous aider:

(setq mm-coding-system-priorities '(utf-8))
kuanyui
la source
aucun effet (j'ai édité la question)
Damien Cassou
0

Avec tous les paramètres ci-dessus, les fenêtres d'encodage ont continué à apparaître. J'ai fait plus d'enquête et j'ai découvert ce paramètre:

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

Résolu le problème pour moi. Je travaille sur Mac OS 10.14.5, Emacs 26.1.

Adam Faryna
la source