< Programmer en R

L'import de fichiers CSV et des fichiers texte en général peut poser des problèmes d'encodage de caractères. Dans cette section, nous passons en revue des méthodes pour détecter l'encodage d'un fichier et convertir le fichier avant de l'importer dans R. Ces méthodes fonctionnent sous Mac OS X et Linux.

Détecter l'encodage

Dans cette section, nous prenons pour exemple la liste des départements 2016 publiées par l'Insee[1].

Détecter l'encodage avec la commande file

Pour les utilisateurs de Mac OS X et Linux, nous recommandons d'ouvrir une fenêtre d'un Terminal, d'aller dans le dossier correspondant (avec la commande cd) et d'utiliser la commande file -i

$ cd ~/Documents/monprojet/data/
$ file -i depts2016.txt 
depts2016.txt: regular file

Dans certains cas, cette commmande permet de connaître l'encodage des caractères. Dans ce cas précis, nous n'avons pas d'information sur l'encodage des caractères dans ce fichier. Nous allons utiliser la commande chardetect.

Détecter l'encodage avec la commande chardetect

Pour installer chardetect, il suffit d'utiliser la commmande pip install dans un terminal :

$ pip install chardet

Pour détecter l'encodage, on tape simplement chardetect suivi du nom du fichier :

$ chardetect depts2016.txt 
depts2016.txt: windows-1252 with confidence 0.73

La commande nous indique que le fichier depts2016.txt est probablement encodé en windows-1252.

Convertir l'encodage d'un fichier

Pour convertir le fichier en encodage utf-8 (l'encodage couramment utilisé sur Linux et Mac OS X), on utilise la commande iconv. iconv trois paramètres : l'encodage d'origine (-f pour from), l'encodage de destination (-t pour to) et le nom du fichier :

$ iconv -f windows-1252 -t utf-8 depts2016.txt
REGION	DEP	CHEFLIEU	TNCC	NCC	NCCENR
84	01	01053	5	AIN	Ain
32	02	02408	5	AISNE	Aisne
84	03	03190	5	ALLIER	Allier
93	04	04070	4	ALPES-DE-HAUTE-PROVENCE	Alpes-de-Haute-Provence
93	05	05061	4	HAUTES-ALPES	Hautes-Alpes
93	06	06088	4	ALPES-MARITIMES	Alpes-Maritimes
84	07	07186	5	ARDECHE	Ardèche

On voit que cette fois-ci, les accents sont correctement affichés.

Pour enregistrer le résultat, on peut imprimer le résultat de cette commande dans un nouveau fichier texte en indiquant tout simplement le nom du fichier de destination après un chevron > :

$ iconv -f windows-1252 -t utf-8 depts2016.txt > depts2016_utf8.txt

Notes et références

Voir aussi

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.