Aller au contenu

Extension Encodage

Un menu Encodage pour relire un fichier dans un autre encodage de caractères, ou pour le convertir vers l'un d'eux. L'éditeur travaille en UTF-8 en interne ; cette extension détermine comment les octets d'un fichier sont convertis depuis et vers ce format.

Votre fichier conserve son encodage

OctoEdit détecte l'encodage d'un fichier à son ouverture et réécrit le même encodage à chaque enregistrement. Un fichier UTF-8 avec marque d'ordre des octets conserve sa BOM, un fichier UTF-16 reste en UTF-16, et un fichier dans la page de codes ANSI du système n'est pas silencieusement promu en UTF-8 au premier Ctrl+S.

L'encodage appartient au document, pas à cette extension : le menu ci-dessous l'affiche et le modifie, et c'est le cœur de l'éditeur qui écrit. C'est aussi pourquoi une conversion est traitée comme n'importe quel autre enregistrement — l'écriture est atomique, la sauvegarde à l'enregistrement s'applique, et la surveillance de fichiers sait que la modification vient de vous.

Un .editorconfig de projet avec un charset reste prioritaire : c'est une décision que vous avez consignée pour tout le projet, et elle l'emporte sur ce que disaient les octets d'un fichier isolé. Après un tel enregistrement, le document annonce ce charset comme son encodage : le menu et la barre d'état nomment donc ce qui se trouve réellement sur le disque.

Deux familles de commandes

La distinction est importante — l'une change l'interprétation, l'autre change ce dans quoi le fichier sera enregistré :

Famille Menu Effet
Interpréter comme Encodage ▸ <encoding> et Encodage ▸ Jeux de caractères ▸ <set> Relit les octets du fichier depuis le disque et les décode avec l'encodage choisi, en remplaçant le tampon, et note cet encodage sur le document. À utiliser lorsqu'un fichier s'est ouvert en mojibake. Le fichier sur le disque reste intact jusqu'à l'enregistrement.
Convertir en Encodage ▸ Convertir en <encoding> Note que le document devra être enregistré dans cet encodage et le marque comme modifié. Aucun octet n'est encore écrit — enregistrez le document pour appliquer la conversion, ou fermez-le sans enregistrer pour l'abandonner.

L'encodage utilisé par le document actif est coché dans le menu : au premier niveau pour les entrées Unicode/ANSI, et dans Encodage ▸ Jeux de caractères pour les encodages hérités. La coche suit l'onglet actif, de sorte que passer d'un document à l'autre indique immédiatement ce que chacun utilise.

La barre d'état nomme le même encodage dans son propre segment (UTF-8, UTF-8-BOM, ANSI, Windows-1250, …) et suit elle aussi le document actif : vous voyez donc ce qu'est un fichier sans ouvrir le menu.

Encodages disponibles

  • Unicode : UTF-8, UTF-8-BOM, UTF-16 LE BOM, UTF-16 BE BOM.
  • ANSI — la page de codes locale mono-octet du système.
  • Sous-menu Jeux de caractères — les jeux hérités regroupés par langue : arabe, balte, celtique, Europe centrale, chinois, cyrillique, Europe de l'Est, grec, hébreu, japonais, coréen, Europe du Nord, thaï, turc, vietnamien et occidental.

Convertir en propose les cinq encodages Unicode/ANSI principaux. Une page de codes héritée s'atteint via Interpréter comme, et un document lu de cette façon est réécrit dans cette même page de codes.

Réparer un fichier illisible

Si un fichier s'ouvre en charabia, essayez Interpréter comme avec l'encodage attendu (p. ex. un jeu de caractères hérité). Une fois la lecture correcte, faites Convertir en UTF-8 puis enregistrez, pour le stocker dans un encodage moderne et portable.