Back to Blog

Problèmes d'accents dans vos CSV ? Tout sur l'encodage UTF-8

Published: March 31, 2026

Problemes d'accents dans vos CSV ? Tout sur l'encodage UTF-8

Meta-description : Vos accents s'affichent mal dans vos fichiers CSV ? Decouvrez pourquoi et comment corriger les problemes d'encodage UTF-8 une bonne fois pour toutes.

On a tous vecu ca : vous ouvrez un CSV et au lieu de "Region Ile-de-France", vous voyez "Région Ã\u008ele-de-France". Ou pire : "R?gion ?le-de-France". A ce moment-la, on a envie de tout jeter.

Ce genre de probleme a un nom : c'est un probleme d'encodage. Et une fois qu'on comprend d'ou ca vient, c'est facile a corriger.

C'est quoi l'encodage, en deux mots ?

Un fichier CSV, c'est du texte. Et un ordinateur ne stocke pas des lettres : il stocke des nombres. L'encodage, c'est la table de correspondance entre les nombres et les lettres.

Le probleme, c'est qu'il existe des dizaines d'encodages differents :

  • ASCII : Les 128 premiers caracteres (lettres anglaises, chiffres, ponctuation basique). Pas d'accents.
  • Latin-1 / ISO-8859-1 : Ajoute les accents europeens. Utilise historiquement en France.
  • Windows-1252 : La version Microsoft de Latin-1, avec quelques caracteres en plus.
  • UTF-8 : L'encodage universel. Supporte tous les caracteres de toutes les langues du monde.

Quand vous ouvrez un fichier avec le mauvais encodage, les caracteres speciaux (accents, cedilles, tilde) sont mal interpretes. C'est comme lire une partition de guitare avec une grille d'accords de piano.

Comment savoir quel encodage utilise mon CSV ?

Dans un editeur de texte

  • VS Code : L'encodage est affiche en bas a droite de la fenetre
  • Notepad++ : Menu Encodage, l'encodage actif est coche
  • Sublime Text : View > Show Console, tapez view.encoding()

En ligne de commande

bash

Linux/Mac

file -bi mon_fichier.csv

Resultat type : text/csv; charset=utf-8

Avec un viewer en ligne

Chargez votre fichier dans CSV Viewer Online. Si les accents s'affichent correctement, votre fichier est probablement en UTF-8. Si non, c'est un autre encodage.

Les symptomes typiques

| Ce que vous voyez | Cause probable |

|-------------------|---------------|

| é au lieu de e | Fichier UTF-8 lu comme Latin-1 |

| Ã au lieu de a | Fichier UTF-8 lu comme Latin-1 |

| ç au lieu de c (cedille) | Fichier UTF-8 lu comme Latin-1 |

| ? ou au lieu d'accents | Fichier Latin-1 lu comme ASCII |

| â au lieu de a (accent circ.) | Double encodage UTF-8 |

| Caracteres chinois aleatoires | Encodage completement different |

Le pattern é est le plus courant en France. C'est le signe classique d'un fichier UTF-8 ouvert avec un logiciel qui attend du Latin-1.

Comment corriger un CSV mal encode

Methode 1 : Avec Notepad++ (Windows)

  1. Ouvrez le fichier dans Notepad++
  1. Si les accents sont casses, allez dans Encodage
  1. Cliquez sur Encoder en UTF-8 (pas "Convertir", juste "Encoder")
  1. Si ca ne corrige pas, essayez Encoder en ANSI puis Convertir en UTF-8
  1. Sauvegardez

La difference entre "Encoder" et "Convertir" est cruciale :

  • Encoder = "Relis le fichier avec cet encodage" (change l'interpretation)
  • Convertir = "Reecris le fichier dans cet encodage" (change les octets)

Methode 2 : Avec la ligne de commande

bash

Convertir de Latin-1 vers UTF-8

iconv -f ISO-8859-1 -t UTF-8 fichieroriginal.csv > fichierutf8.csv

Si vous n'etes pas sur de l'encodage source, essayez :

iconv -f WINDOWS-1252 -t UTF-8 fichieroriginal.csv > fichierutf8.csv

Methode 3 : Avec Python

python

Lire avec l'ancien encodage, ecrire en UTF-8

with open('fichier_original.csv', 'r', encoding='latin-1') as f:

contenu = f.read()

with open('fichier_utf8.csv', 'w', encoding='utf-8') as f:

f.write(contenu)

Pour les cas compliques ou vous ne connaissez pas l'encodage :

python

import chardet

Detecter l'encodage automatiquement

with open('fichier_mystere.csv', 'rb') as f:

resultat = chardet.detect(f.read())

print(f"Encodage detecte : {resultat['encoding']} (confiance : {resultat['confidence']:.0%})")

Methode 4 : Avec Excel

  1. Ouvrez Excel (fichier vierge)
  1. Donnees > A partir d'un fichier texte/CSV
  1. Dans l'assistant, changez Origine du fichier en 65001 : Unicode (UTF-8)
  1. Si les accents sont bons dans l'apercu, cliquez sur Charger
  1. Si non, essayez 1252 : Europe occidentale (Windows)

Comment eviter ces problemes a l'avenir

Regle n°1 : Produisez toujours en UTF-8

Quand vous creez ou exportez un CSV :

  • Excel : Choisissez "CSV UTF-8 (delimite par des virgules)" et pas juste "CSV"
  • Google Sheets : Exporte toujours en UTF-8 (pas de choix a faire)
  • Python : df.to_csv('fichier.csv', encoding='utf-8', index=False)
  • PHP : Ajoutez un BOM UTF-8 si le fichier sera ouvert dans Excel

Regle n°2 : Communiquez l'encodage

Quand vous envoyez un CSV a quelqu'un, precisez l'encodage. Un simple "le fichier est en UTF-8" dans l'email peut eviter des heures de galere.

Regle n°3 : Verifiez avant d'envoyer

Ouvrez votre CSV dans un viewer en ligne ou un editeur de texte avant de l'envoyer. Si les accents sont bons chez vous, ils le seront chez le destinataire (tant qu'il ouvre avec le bon encodage).

Le cas du BOM (Byte Order Mark)

Le BOM est un caractere invisible place au debut d'un fichier UTF-8. Son role : signaler aux logiciels que le fichier est en UTF-8.

  • Excel adore le BOM (il en a besoin pour ouvrir correctement un CSV en UTF-8)
  • La plupart des autres outils n'en ont pas besoin et parfois ca les perturbe

Si votre CSV sera ouvert principalement dans Excel, ajoutez un BOM :

python

with open('fichier.csv', 'w', encoding='utf-8-sig') as f:

f.write(contenu) # utf-8-sig = UTF-8 avec BOM

Memo rapide

| Situation | Action |

|-----------|--------|

| Creer un CSV | Toujours exporter en UTF-8 |

| Ouvrir un CSV avec accents casses | Changer l'encodage dans l'editeur |

| Convertir un vieux fichier | iconv ou Python |

| Envoyer un CSV a quelqu'un | Preciser l'encodage + tester avant |

| CSV pour Excel specifiquement | UTF-8 avec BOM (utf-8-sig) |

| Doute sur l'encodage | Viewer en ligne ou chardet |

Les problemes d'encodage sont frustrants mais jamais graves. Vos donnees ne sont pas perdues, elles sont juste mal lues. Avec les bonnes methodes, ca se corrige en 2 minutes. Et en prenant l'habitude de tout produire en UTF-8, vous ne rencontrerez plus ces problemes.