Intermédiaire 8 min de lecture 25 janvier 2025

vscode encoding : maîtriser l'encodage des fichiers dans Visual Studio Code

Accents cassés, caractères �, diffs Git massifs, scripts qui plantent au premier caractère… La cause est souvent un mauvais encodage. Avec VS Code, vous pouvez ouvrir, détecter et enregistrer vos fichiers dans le bon format, gérer le BOM et uniformiser les fins de ligne. Voici comment aborder vscode encoding efficacement.

Comprendre l'encodage dans VS Code

L'encodage détermine la manière dont les caractères sont représentés en octets. VS Code ouvre par défaut en UTF‑8, mais peut ré-ouvrir ou sauvegarder un fichier dans d'autres encodages.

Voici les domaines clés autour de vscode encoding :

1 Encodages courants et recommandés

Ceux que vous croiserez le plus dans VS Code :

UTF-8 (par défaut), UTF-8 with BOM, UTF-16 LE/BE, Windows-1252, ISO-8859-1

2 Réglages VS Code liés à l'encodage

Paramétrez l'ouverture et la sauvegarde des fichiers :

files.encoding, files.autoGuessEncoding, files.eol, editor.renderControlCharacters

3 BOM, variantes et pièges fréquents

Ces cas causent souvent des erreurs inattendues :

UTF-8 with BOM (EF BB BF) en tête de fichier
UTF-16 LE/BE avec BOM (FF FE / FE FF)
Auto-détection approximative sur fichiers courts
Fichiers mélangés CRLF/LF dans le même repo

4 Outils intégrés utiles

Actions rapides accessibles depuis la barre d'état et la palette :

Reopen with Encoding
Save with Encoding
Changer CRLF/LF via la barre d'état
Paramètres Workspace et .editorconfig

Problèmes classiques

Accents illisibles (mojibake) à l'ouverture

Fichier en Windows‑1252 ou ISO‑8859‑1 ouvert en UTF‑8, les caractères spéciaux s'affichent mal.

Erreurs au lancement d'outils à cause du BOM

Le BOM en début de fichier casse un shebang, un JSON ou un import CSV.

Sauts de ligne incohérents

CRLF et LF mélangés dans le même repo provoquent des diffs bruyants et des scripts fragiles.

Diffs Git énormes sans changement visible

Un changement d'encodage ou de fins de ligne modifie toutes les lignes sans modification de contenu.

Exemple de problème courant :

# Fichier JSON en UTF-8 avec BOM
content = "\uFEFF{ \"name\": \"Ada\" }"
parse(content) # ❌ Erreur: caractère inattendu à l'offset 0 (BOM)
solution: enregistrer sans BOM dans VS Code (Save with Encoding → UTF-8)

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
La barre d'état affiche "UTF-8 with BOM" ou "CRLF" alors que vous attendez "UTF-8" et "LF"
!
Les accents deviennent � après un commit/pull
!
Un JSON/CSV valide échoue côté outil à cause d’un caractère au tout début du fichier
!
Git affiche des ^M en fin de ligne
!
Votre terminal ou vos tâches VS Code affichent des caractères absurdes

Comment les détecter

Solution recommandée : Clean ASCII

Clean ASCII met en évidence l'encodage problématique, les BOM, les fins de ligne et les caractères non‑ASCII. Collez votre texte, obtenez un diagnostic immédiat et des propositions de correction prêtes à l’emploi.

✅ Détection automatique

Encodage estimé, BOM (UTF‑8/UTF‑16), CRLF/LF, caractères hors ASCII

📊 Analyse complète

Positions, octets, code points et recommandations d’enregistrement dans VS Code

🧹 Nettoyage automatique

Suppression du BOM, conversion CRLF→LF, normalisation UTF‑8

💾 Export propre

Téléchargez le contenu en UTF‑8 sans BOM, prêt pour VS Code et Git

Autres méthodes de détection

Affichage dans l'éditeur

Vérifiez la barre d'état (UTF‑8/UTF‑8 with BOM, CRLF/LF) et cliquez pour changer
Utilisez la palette: "Reopen with Encoding" et "Save with Encoding"

En ligne de commande (Unix)

# Estimer l'encodage
file -i fichier.txt
# Repérer CRLF
grep -n $'\r' -H fichier.txt
# Afficher BOM et octets
hexdump -C fichier.txt | head
# Convertir vers UTF-8
iconv -f windows-1252 -t utf-8 fichier.txt > out.txt

En code

JavaScript

str = str.replace(/^\uFEFF/, '')

Python

open(path, encoding="utf-8-sig").read()

Excel / Google Sheets

SI(UNICODE(GAUCHE(A1;1))=65279;DROITE(A1;NBCAR(A1)-1);A1)

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Avant de bricoler des conversions à la main, utilisez Clean ASCII pour vérifier et assainir votre texte avant de le rouvrir ou le sauvegarder dans VS Code.

Détection encodage et BOM
Conversion vers UTF‑8 sans BOM
Uniformisation CRLF/LF

Méthodes techniques avancées

🔧 Normaliser

Enregistrer en UTF‑8 sans BOM dans VS Code (Save with Encoding → UTF‑8)
Uniformiser CRLF/LF via .gitattributes et la barre d'état
Définir .editorconfig (charset=utf-8, end_of_line=lf)

🧹 Filtrer

Supprimer le BOM au début des fichiers texte
Convertir les fichiers hérités (Windows‑1252/ISO‑8859‑1) en UTF‑8
Éviter les mélanges CRLF/LF dans les scripts et données

⚙️ Automatiser

Hooks pre-commit (dos2unix, vérif. BOM) et règles Git pour EOL
CI qui échoue si un fichier n’est pas en UTF‑8 sans BOM
ESLint/Prettier: "unicode-bom": "never" et normalisation des EOL

Checklist rapide

Fichiers enregistrés en UTF‑8 sans BOM dans VS Code
Fins de ligne uniformes (gitattributes + barre d'état VS Code)
Affichage du statut encodage/EOL clairement visible dans l’éditeur
Paramètres files.encoding et files.autoGuessEncoding au niveau workspace
Vérifications CI empêchant BOM et EOL non conformes
Documentation équipe sur vscode encoding et conventions d'encodage

Conclusion

Configurer correctement vscode encoding évite la plupart des soucis d’accents, de diffs bruyants et d’échecs d’outillage.

Adoptez UTF‑8 sans BOM, alignez vos fins de ligne et contrôlez l’encodage à l’ouverture comme à la sauvegarde dans VS Code.

Vérifiez l'encodage de vos fichiers maintenant

Utilisez notre outil pour détecter le BOM, uniformiser les fins de ligne et corriger les problèmes d’encodage.

Analyser mon encodage