Bon, j'ai enfin fait un truc que je voulais faire depuis un petit moment: basculer mon système en UTF-8 au lieu d'ISO-8859-1. Heureusement, sous Debian ça reste en partie assez simple:

$ sudo dpkg-reconfigure locales

Il suffit de générer les locales de son choix, par exemple fr_FR@euro.UTF-8, en_US.UTF-8, puis de sélectionner la locale par défaut du système, dans mon cas le second, mais peu importe.

Ça permet d'avoir toutes les applis dans cet encoding, notamment Konsole, que j'avais jamais réussi à basculer juste elle-même en UTF-8, contrairement à xterm qui permet de le faire même dans un environnement ISO.

Le truc plus rigolo est pour IRC: mon client IRC (irssi) tourne dans un screen sur poivron, auquel je me connecte en SSH à partir d'un shell qui tourne sur ma machine dans son propre screen... Simple n'est-ce pas ? Donc après avoir obtenu que Konsole utilise de l'UTF-8, il faut lancer chaque screen en rajoutant l'option -U, que ce soit lors de la création ou de chaque « rattachement ». Enfin, dans irssi, il suffit de bien définir l'option term_type (/set term_type utf8), et tout marche nickel.

Bien sûr, comme j'ai souvent été soûlé par les gens qui arrivent avec leurs gros sabots sur des channels IRC où tout le monde est en iso-8859-15, et qui balancent de l'UTF-8 comme si de rien n'était, je me suis dit que j'allais pas faire la même chose :) Par chance, des gens (dont en dernier lieu Johan "Ion" Kiviniemi) ont eu la délicatesse de faire un script irssi nommé « recode », qui permet d'utiliser des charsets différents suivant les chans, et de traduire de l'un à l'autre facilement. Du coup, étant plus souvent sur des chans en ISO qu'en UTF-8, ces options conviennent :

/set recode_terminal_charset utf-8 (encoding du terminal)
/set recode_default_charset iso-8859-15 (encodage par défaut sur les chans)

La dernière option est écrasable au coup par coup avec l'option /recode, ce qui est particulièrement intéressant pour respecter les pratiques de chaque chan.

Enfin, il est à noter que, bien que la plupart des programmes se comportent très bien avec cet encoding particulier qu'est UTF-8, dans lequel le prédicat « 1 caractère = 1 octet » n'est plus vrai, ce n'est pas le cas de tous. Notamment, zsh gère assez mal le retour arrière (backspace), car il faut presser 2 fois la touche pour effacer un caractère de 2 octets comme 'é'. Bien sûr, ça pourrit l'écran, donc il faut enchaîner avec un petit Ctrl-L. Trop bien. Je crois que le complètement se passe mal aussi dans certains cas bizarres.

Hormis ces quelques cas, « jusqu'ici tout va bien ».