Envoyer un courrier en anglais ? Pas de problème. En français ? Ça va à peu près. En allemand ? En espagnol ? Pareil, on se débrouille. En polonais, en danois ? C'est déjà plus difficile. En russe ou en grec ? Là ça devient vraiment compliqué. En chinois ou en japonais ? Le cauchemar !
Pour pouvoir envoyer des courriers dans des langues bizarres, il faut avant tout savoir taper les messages. Pour ça, vous pouvez vous référer à notre page sur comment taper de l'Unicode. Il est également utile d'avoir lu la page sur les problèmes théoriques liés aux langues.
Peu de logiciels de courrier gèrent correctement Unicode. En particulier, il n'est pas question d'utiliser Pine. Heureusement, le meilleur logiciel de courrier que nous ayons ici, Mutt, s'en tire parfaitement. Le seul autre logiciel de courrier gérant Unicode ici est le module courrier de Mozilla. C'est de Mutt que nous parlerons ici.
Vous devez donc utiliser Mutt, avec comme éditeur un éditeur gérant Unicode. Ça ne vous laisse pas énormément de choix, mais c'est le choix parmi le meilleur.
Avant toutes choses, il vous faut obtenir un terminal en Unicode pour pouvoir lancer Mutt dedans.
Dès que vous avez ainsi lancé Mutt, tous vos courriers devraient s'afficher, quelle que soit leur langue. Il n'y a rien de plus à faire.
Pour envoyer un courrier à quelqu'un disposant d'un logiciel de courrier moderne, il n'y a rien de spécial à faire : composez le message comme d'habitude (on a expliqué dans une autre page comment taper dans des langues exotiques), et envoyez-le.
Une petite subtilité qui peut se produire : quand vous répondez à un
courrier, vous le citez, avec en chapeau un texte d'« attribution » du
style « Le 29 février 2000, Untel Tartampion a écrit : ». Le problème
vient du é dans « écrit » : il vient directement de votre fichier
.muttrc
, et est codé en iso-8859-1
. Ceci peut
faire échouer la détection automatique du codage par votre éditeur. Pour
corriger ça, avant de répondre, tapez :set attribution=, puis
Tab, et corrigez.
Ne lisez ça que si ça ne marche pas. Si ça marche, pas la peine de vous compliquer la vie.
Il peut y avoir plusieurs causes. Si les caractères s'affichent comme des carrés en pointillés, c'est que la police utilisée n'a pas les caractères nécessaires, il n'y a pas grand chose à faire, à part essayer de trouver une police plus riche.
Si le texte s'affiche rempli de points d'interrogation, le problème vient du logiciel de courrier de votre correspondant, qui n'a pas correctement étiqueté le courrier avec le codage utilisé. La situation n'est pas désespérée. Appuyez sur v, et Mutt affichera les parties du message (une seule en général). Sur la droite, vous verrez une mention du genre :
[text/plain, 8bit, iso-8859-1, 0.5K]
Le text/plain
permet de reconnaître le courrier lui-même dans
le cas où il y a des attachements. Ce qui nous intéresse alors est le
troisième champ, qui est ici iso-8859-1
: ça indique que Mutt
a détecté le codage ISO-8859-1, soit le codage pour les langues
occidentales. Le plus probable est que votre courrier indique
us-ascii
, ce qui veut dire qu'aucun codage n'est explicitement
indiqué. Ou bien il y en a un autre, qui n'est pas le bon.
Dans tous les cas, vous pouvez demander à Mutt d'essayer un autre codage de votre choix en tapant par exemple :
:charset-hook iso-8859-1 koi8-r
où iso-8859-1
est le codage détecté par Mutt, et
koi8-r
celui que vous voulez lui faire essayer. Pour que ce
soit pris en compte, il faut revenir à l'index et ré-ouvrir le message.
Pour savoir quel codage essayer, il faut avoir une vague idée de la langue dans laquelle est le message. Vous pouvez essayer les suivants (les majuscules n'ont pas d'importance) :
ISO-8859-1
, ISO-8859-15
,
Windows-1252
, MacRoman
pour les langues
occidentales ;ISO-8859-2
, Windows-1250
,
MacCentralEurope
pour les langues d'Europe
centrale ;ISO-8859-3
pour les langues d'Europe du
sud ;ISO-8859-4
ISO-8859-13
,
Windows-1257
pour les langues baltes ;ISO-8859-5
, KOI8-R
, KOI8-U
,
Windows-1251
, CP866
, MacCyrillic
,
MacUkraine
pour le cyrillique ;ISO-8859-6
, Windows-1256
pour
l'arabe ;ISO-8859-7
, Windows-1253
,
MacGreek
pour le grec ;ISO-8859-8
, Windows-1255
pour
l'hébreu ;ISO-8859-9
, Windows-1254
,
MacTurkish
pour le turc ;ISO-8859-10
pour les langues
nordiques ;ISO-8859-14
pour le celte ;Chinese
(c'est GB2312), Big5
,
EUC-TW
, GBK
, GB18030
pour le
chinois ;EUC-JP
, ISO-2022-JP
, Shift_JIS
pour le japonais ;Windows-1258
, VISCII
, TCVN-5712
pour le vietnamien ;EUC-KR
pour le coréen ;MacCroatian
pour le croate ;MacIceland
pour l'islandais ;MacRomania
pour le roumain ;TIS-620
pour le thai ;ARMSCII-8
pour l'arménien ;UTF-8
, UTF-7
pour toutes les langues.
Quand vous avez trouvé quel était le bon codage, vous pouvez configurer Mutt
pour que le changement se fasse automatiquement. Pour ça, ajoutez dans votre
fichier .muttrc
des lignes de la forme :
message-hook . "charset-hook iso-8859-1 iso-8859-1" message-hook ~f"untel" "charset-hook iso-8859-1 koi8-r"
La première ligne indique à mutt que pour tous les messages, il doit
convertir iso-8859-1
en lui-même ; elle sert à effacer les
effets de la suivante. La seconde ligne dit que pour les messages
d'Untel, il faut prendre
l'iso-8859-1
pour du koi8-r
(untel
est une partie de l'adresse de l'expéditeur (ou une expression
rationnelle)).
L'idéal est quand même de convaincre votre correspondant de configurer correctement son logiciel de courrier.
Le problème qui peut vous arriver, c'est que votre correspondant n'arrive pas à vous lire, parce que son logiciel de courrier ne connaît pas Unicode. Si vous n'arrivez pas à le convaincre d'en adopter un moins rudimentaire, voilà comment vous adapter à lui.
La première méthode est de trouver quel codage il accepte. En général c'est
facile : c'est le même que celui des courriers qu'il envoie, et nous avons
vu plus haut comment le déterminer. Au pire, il vous reste à tester les
différents codages de la liste jusqu'à en trouver un qu'il arrive à lire.
Mettons pour la suite que le codage qui convient est koi8-r
.
Mutt possède une option send_charset
, dont la valeur par défaut
est us-ascii:iso-8859-1:utf-8
. Ça veut dire qu'au moment
d'envoyer un courrier, Mutt essaiera successivement les codages
us-ascii
, puis iso-8859-1
et enfin
utf-8
, jusqu'à en trouver un assez riche pour coder votre
courrier (utf-8
est toujours assez riche). Il s'agit donc
d'ajouter le codage de votre correspondant à la liste, en mettant la ligne
suivante dans votre fichier .muttrc
:
set send_charset="us-ascii:iso-8859-1:koi8-r:utf-8"
Ceci se lit : si le courrier ne contient que des caractères anglo-saxons,
utiliser le codage us-ascii
, sinon, si le courrier contient
aussi des caractères accentués occidentaux, utiliser le codage
iso-8859-1
, sinon, si le courrier contient des caractères
cyrilliques, utiliser le codage koi8-r
, et sinon enfin utiliser
le codage utf-8
(entre autres si le courrier contient des
accents occidentaux et du cyrillique, par exemple pour un courrier
bilingue en français et russe).
Au moment de l'envoi, Mutt indique le codage qu'il a choisi :
- I 1 ~/tmp/mutt-clipper-25879-1 [text/plain, 8bit, koi8-r, 0.1K]
Vous pouvez le modifier avec Ctrl-T si vous n'êtes pas satisfait, ou pour changer au cas par cas. Il ne reste plus qu'à envoyer.