Outils pour utilisateurs

Outils du site


dev:python:caracteres-et-encodage

Ceci est une ancienne révision du document !


Jeux de caractères et encodage avec python

Erreur à l’exécution d'un script utf-8 sous Windows

Le script s’exécute normalement sous Linux mais affiche une erreur à l’exécution sous Windows:

python mon_script.py
  File "mon_script.py", line 2
SyntaxError: encoding problem: utf8

Vérifier bien la syntaxe du header, il doit utiliser une des deux formes suivantes:

#!/usr/bin/env python
# coding: utf-8

ou bien

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Lorsque les scripts utilise l'entête

Erreur

Lors de l’exécution du script python utilisant en entrée un fichier texte, un message de la forme suivante est retournée par interpréteur:

UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 54: character maps to <undefined>

Le caractère u'\ufeff ' est le BOM1). Utiliser la syntaxe suivante à l'ouverture du fichier:

with open("data/file.txt", "r", encoding='utf-8-sig') as fp:

Références

1)
Byte Order Mark
dev/python/caracteres-et-encodage.1579024468.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)