Outils pour utilisateurs

Outils du site


dev:python:caracteres-et-encodage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
dev:python:caracteres-et-encodage [2018/05/09 14:40] – créée yoanndev:python:caracteres-et-encodage [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
  
 ====== Jeux de caractères et encodage avec python ====== ====== Jeux de caractères et encodage avec python ======
 +
 +Le PEP 263 détaille les problématiques liées à l'encodage de caractères en Python et la directive **coding**.
 +
 +
 +===== Encodage par défaut =====
 +
 +Il est possible de récupérer l'encodage par défaut utilisé par le système courant via le module **sys**:
 +
 +<code python>
 +import sys
 +sys.getdefaultencoding()
 +</code>
  
 ===== Erreur à l’exécution d'un script utf-8 sous Windows ===== ===== Erreur à l’exécution d'un script utf-8 sous Windows =====
  
-Le script s'execute normalement sous Linux mais affiche une erreur à l'execution sous Windows:+Le script s’exécute normalement sous Linux mais affiche une erreur à l’exécution sous Windows. Cela peut se produire si les deux systèmes n'utilisent pas le même jeu de caractère par défaut et que le jeu de caractère n'a pas été précisé via la directive **coding** en début de fichier: 
 <code> <code>
 python mon_script.py python mon_script.py
Ligne 28: Ligne 41:
 Lorsque les scripts utilise l'entête 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:
 +<file>
 +UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 54: character maps to <undefined>
 +</file>
 +
 +Le caractère u'\ufeff ' est le BOM((**B**yte **O**rder **M**ark)). Utiliser la syntaxe suivante à l'ouverture du fichier:
 + 
 +<code python>
 +with open("data/file.txt", "r", encoding='utf-8-sig') as fp:
 +</code>
  
 ===== Références ===== ===== Références =====
  
 +  * https://docs.python.org/3/reference/lexical_analysis.html#encoding-declarations
   * http://sebsauvage.net/python/charsets_et_encoding.html   * http://sebsauvage.net/python/charsets_et_encoding.html
   * https://stackoverflow.com/questions/6289474/working-with-utf-8-encoding-in-python-source#6289494   * https://stackoverflow.com/questions/6289474/working-with-utf-8-encoding-in-python-source#6289494
 +  * https://code-examples.net/en/q/11151f3
dev/python/caracteres-et-encodage.1525876839.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)