Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 28 October 2014 16:46

Laurent Frilleux
Participant actif
Lieu: Aniane
Date d'inscription: 8 Sep 2005
Messages: 83

ARCGIS 10 Python Pb encodage caractère

Bonjour

J'ai un problème de calcul de champ dans un script python. J'ai le message d'erreur suivant : "UnicodeEncodeError: 'ascii' codec can't encode character u'\xe2' in position 2: ordinal not in range<128>"

Les données que je veux calculer ont la mauvaise idée d'avoir des accents. Elles sont toutes stockées dans des gdb.

Savez vous comment on peut contourner ce pb sachant qu'il me faut conserver les accents.

Merci


Laurent Frilleux
Immergis - Montpellier

Hors ligne

 

#2 Tue 28 October 2014 17:32

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: ARCGIS 10 Python Pb encodage caractère

Bonjour,

C'est lié au fait que Python travaille en Unicode (en français, cette ressource est assez synthétique : Charsets et encoding).

Il faudrait peut-être écrire quelque chose du genre : str.decode('iso-8859-1') ou str.encode('utf-8') en indiquant l'encodage de la source de données

Normalement les caractères sont stockée en Unicode (UTF-8, UTF-16 ou UTF-32) dans les geodatabases (ici et )

Quel genre de calcul est réalisé en Python ?

A+

Franck

Hors ligne

 

#3 Wed 29 October 2014 08:10

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: ARCGIS 10 Python Pb encodage caractère

Bonjour,
parfois c'est juste un probleme d'affichage de données lors d'un print
Moi j'ai pris l'habitude de commencer tous mes scripts par (en première ligne obligatoirement)

Code:

#-*-coding:Latin-1 -*-

voici un lien plutôt pas mal détaillé sur la question: http://sametmax.com/lencoding-en-python … our-toute/

A+
Nicolas GRANIER

Dernière modification par Nicolas Granier (Wed 29 October 2014 08:11)

Hors ligne

 

#4 Wed 29 October 2014 09:01

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: ARCGIS 10 Python Pb encodage caractère

Bonjour Nicolas,

Le lien sur sametmax est effectivement lui aussi bien détaillé mais pourquoi alors tu mets :

Code:

#-*-coding:Latin-1 -*-

en début de script alors que Sam conseille de travailler tout le temps en UTF-8 et de mettre en début de fichier :

Code:

# -*- coding: utf8 -*-

?

A+

Franck

Hors ligne

 

#5 Wed 29 October 2014 11:01

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: ARCGIS 10 Python Pb encodage caractère

Bonjour Franck,
je mets Latin-1 car cela correspond aux caractères occidentaux donc ceux que nous avons l'habitude de manipuler (ceux que j'ai l'habitude de manipuler plutôt). Dans 99.8% des cas cela fonctionne très bien (pas de bug sur les accents, la cédille, le chapeau,...)
Lorsque j'ai un problème d'encodage même en mettant la ligne #-*-coding:Latin-1 -*-, ce n'est pas la modification en utf8 qui me permets de m'en sortir. Ce sont souvent des mauvaises interprétations de l'encodage de fichiers externes que l'on parcourt en python.

En mettant # -*- coding: utf8 -*-, mon sentiment est de mettre un "fourre-tout", on prend le conteneur le plus grand et on ferme les yeux en disant que de toute façon le caractère doit bien être dedans. En mettant Latin-1, je me dis que dans mon cas d'utilisation je borne mon code à des caractères occidentaux que j'utilise et que si j'ai une erreur elle vient d'un problème d'encodage plus complexe que la simple déclaration en Latin1.
A+
Nicolas

Hors ligne

 

#6 Wed 29 October 2014 17:42

Laurent Frilleux
Participant actif
Lieu: Aniane
Date d'inscription: 8 Sep 2005
Messages: 83

Re: ARCGIS 10 Python Pb encodage caractère

Bonjour

Merci pour vos réponses, j'ai essayé sans trop de succès de modifier les encodages en utf8 et Latin-1.
Finalement en modifiant un peu le script, cela à l'air de fonctionner sans trop que je comprenne pourquoi je l'avoue.
J'avais en fait, des conversions en chaine inutile et ce sont ces éléments qui une fois supprimé ont permis le calcul des champs.

Merci encore


Laurent Frilleux
Immergis - Montpellier

Hors ligne

 

Pied de page des forums

Powered by FluxBB