1)En fait, peu importe l'encodage : si l'application réceptrice choisie est mal écrite, elle affichera tout aussi mal du latin-1 que de l'unicode...
Il faut choisir sans aucune hésitation possible l'unicode, et pour nous les européens, l'encodage UTF-8 (et en théorie, l'UTF-7 pour les mails, mais c'est un peu trop exotique)
Les ISO-8859-x ne sont que des reliquats de dizaines d'années de (mauvaises) habitudes, sont limités : avec eux, il est impossible d'écrire un texte ou de faire une base de données contenant à la fois du français, du danois et du slovaque par exemple. Avec l'unicode, ces limitations explosent, et il n'y a plus de problème.
Pourquoi dis-tu que l'unicode ne permet pas l'encodage universel du chinois et du japonais ? C'est faux ! il encode tout, y compris des langues mortes comme le cunéiforme !
2) L'unicode est une norme qui attribue un numéro à chaque caractère existant ou ayant existé sur la planète, sans se soucier de sa réprésentation informatique. Il n'y a pas 65536 (2¹⁶ ) caractères définis, mais plus de 4 milliards (2³²) dans les dernières normes unicodes.
Les UTF-x sont des encodages informatiques de l'unicode qui règlent le problème de stocker ces textes dans les mémoires des ordinateurs et qui rompent totalement avec l'habitude qui consistait à poser l'égalité 1 caractère = 1 octet. Ce n'est plus vrai, et c'est une révolution !
2) UTF-8 Les unicodes < 127 sont codés sur un octet, les autres sur 2, 3 voir 4 ! C'est l'encodage privilégiés des langues européennes car les lettres latines ont justement des codes inférieur à 127. Ainsi, du texte français demande 1 octet pour les lettres normales, et 2 octets pour les accents, ce qui est efficace en mémoire. Le mot « français » demande donc 9 octets, alors qu'il a 8 lettres (le « ç » compte pour 2)
De plus, le codage des 127 premiers caractères est celui des ISO8859-x, lui même repris du vieil l'ASCII ! Ce qui fait qu'un américain ou un anglais, qui n'utilisent pas d'accents (à part quelques rares exception comme café, sauté), ne voient aucune différence entre de l'ASCII, de l'ISO-8859 et de l'unicode ! Du coup, ils n'ont pas la culture de l'encodage, et ça pose des tas de problèmes quand ils font des softs (ils ne voient pas les bugs d'encodage) !
UTF-16 : chaque caractère est stocké sur deux octets fixes par contraste à l'UTF-8 qui a une taille variable. Il est utilisé en interne par les ordinateurs car il propose une taille fixe pour chaque caractère, ce qui est plus facile à gérer qu'une taille variable, et aussi pour les langues asiatiques car un idéogramme chinois est codé sur 3 caractères en UTF-8 (quelquefois 4 ?) au lieu de 2 en UTF-16.
UTF-7 : est parti du constat que le 8ème bit est (était ?) proscrit dans les mails, ce qui impose un encodage-formatage supplémentaire comme base64 ou QuotedPrintable. On aboutit ainsi à deux codages successifs pour envoyer un mail, et à chaque fois on augmente le nombre d'octet.
L'UTF-7 encode de l'unicode directement sans le 8ème bit, et n'a plus besoin du deuxième encodage propre au mail.
En pratique, on ne constate pas que l'UTF-7 réduit la taille des mails ! En français, les caractères à problèmes (é à ç è ù) sont trop rares par rapport aux autres pour faire une différence. Pour les autres langues arabes/asiatiques/indienne, c'est peut être différent.
Le mail est le plus vieux protocole du net, et cette histoire de 8ème bit interdit peut être considéré comme obsolète. On n'est plus en 1960. D'ailleurs, thunderbird ne se gène pas pour envoyer des mails en 8 bits.
3) la référence :
The ISO 8859 Alphabet Soup
L'article de wikipedia sur l'
unicode est très bien aussi
Dans tes codages, tu as oublié les codages microsoft, qui a bien entendu édicté ses propres normes et foulé du pied celles qui existaient déjà !
En unix/linux, tu as deux utilitaires pour convertir des encodages en d'autres :
iconv (le standard unix) et
recode (une alternative).
iconv est installé en standard, et recode est à installer (package)
Voilà, l'unicode c'est sympa ☺