20.8. Specifying a Coding System

Dans les cas où Emacs ne choisit pas automatiquement le bon système de codage, vous pouvez utiliser ces commandes pour en spécifier un :

C-x RET f codage RET

Utilise le système de codage codage pour le fichier visité dans le tampon courant.

C-x RET c codage RET

Spécifie le système de codage codage pour la commande suivant immédiatement.

C-x RET k codage RET

Utilise le système de codage codage pour les entrées au clavier.

C-x RET t codage RET

Utilise le système de codage codage pour les sorties sur le terminal.

C-x RET p codage RET

Utilise le système de codage codage pour les entrées et sorties avec les sous-processus du tampon courant.

La commande C-x RET f (set-buffer-file-coding-system) spécifie le système de codage pour le fichier du tampon courant--en d'autres mots, quel système de codage utiliser pour enregistrer ou lire le fichier visité. Vous spécifiez le système de codage en utilisant le mini-tampon. Cette commande s'appliquant à un fichier déjà visité, elle affecte seulement la manière dont le fichier est enregistré.

Un autre moment pour spécifier le système de codage pour un fichier est lorsque vous visitez le fichier. Utilisez d'abord la commande C-x RET c (universal-coding-system-argument) ; cette commande utilise le mini-tampon pour lire le nom d'un système de codage. Après avoir quitté le mini-tampon, le système de codage spécifié est utilisé pour la commande suivant immédiatement.

De ce fait si la commande suivant immédiatement est C-x C-f, par exemple, elle lit le fichier en utilisant ce système de codage (et sauvegarde le système de codage pour le moment où le fichier est enregisté). Ou si la commande suivant immédiatement est C-x C-w, elle écrit le fichier en utilisant ce système de codage. Les autres commandes de fichiers affectées par un système de codage spécifique incluent C-x C-i et C-x C-v, ainsi que les variantes autre-fenêtre de C-x C-f.

C-x RET c affecte aussi les commandes qui lancent des sous-processus, incluant including M-x shell (Section 31.15).

Cependant, si la commande suivant immédiatement n'utilise pas de système de codage, alors C-x RET c n'a aucun effet.

Une manière facile de visiter un fichier sans aucune conversion est d'utiliser la commande M-x find-file-literally. Section 16.2.

La variable default-buffer-file-coding-system spécifie le choix de système de codage à utiliser lorsque vous créez un nouveau fichier. Elle est utilisée lorsque vous ouvrez un nouveau fichier, et lorsque vous créez un nouveau tampon puis l'enregistrez dans un fichier. Spécifier un environnement de langue met cette variable à un bon choix de système de codage par défaut pour cet environnement de langue.

La commande C-x RET t (set-terminal-coding-system) spécifie le système de codage pour les sorties sur le terminal. Si vous spécifiez un code de caractères pour les sorties sur le terminal, tous les caractères envoyés au terminal sont convertis dans ce système de codage.

Cette fonctionnalité est utile pour certains terminaux texte seulement construits pour supporter des langues ou jeux de caractères spécifiques--par exemple, des terminaux européens supportant un des jeux de caractères ISO Latin.

Par défaut, les sorties sur le terminal ne sont pas converties.

La commande C-x RET k (set-keyboard-coding-system) spécifie le système de codage pour les entrées au clavier. La conversion par un code de caractères des entrées clavier est utile pour des terminaux avec des touches qui envoient des caractères graphiques non ASCII--par exemple, certains terminaux construits pour ISO Latin-1 ou un sous-ensemble de celui-ci.

Par défaut, les entrées clavier ne sont pas converties.

Il existe une similarité entre l'utilisation d'un système de codage pour les entrées au clavier, et l'utilisation d'une méthode d'entrée : tous deux définissent des séquences d'entrées au clavier qui sont converties en caractères uniques. Cependant, les méthodes d'entrée sont étudiées pour être utilisées facilement par les humains de façon interactive, et les séquences converties sont généralement des séquences de caractères imprimables ASCII. Les systèmes de codage, quant à eux, convertissent généralement des séquences de caractères non graphiques.

La commande C-x RET p (set-buffer-process-coding-system) spécifie le système de codage pour les entrées et sorties avec un sous-processus. Cette commande s'applique au tampon courant ; normalement, chaque sous-processus a son propre tampon, et vous pouvez ainsi utiliser cette commande pour spécifier la conversion à partir de et vers un sous-processus en particulier en exécutant cette commande dans le tampon correspondant.

Par défaut, les entrées et sorties avec un processus ne sont pas converties.

La variable file-name-coding-system spécifie un système de codage utilisé pour encoder les noms de fichiers. Si vous définissez cette variable comme un nom de système de codage (comme symbole Lisp ou comme chaîne), Emacs encode les noms de fichiers en utilisant ce système de codage pour toutes les opérations sur les fichiers. Cela rend possible l'utilisation des caractères non ASCII dans les noms de fichiers--ou, au moins, les caractères non ASCII que le système de codage spécifié peut encoder. Par défaut, cette variable est à nil, ce qui implique que vous ne pouvez pas utiliser de caractères non ASCII dans les noms de fichiers.