UnicodeEncodeError

develuc2 Messages postés 1 Statut Membre -  
lucrecife Messages postés 6 Statut Membre -
j'interroge une url et selon certaines pages, le code s'arrete et m'affiche:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 37: ordinal not in range(128)

comment faire pour "sauter" ce pb et afficher le reste de la page.
Pour l'instant, quoi que je fasse, il refuse de discuter et m'affiche l'erreur!

mon code:
page=1
ville="Bénin"

data=[""]
data[0]=["numero","tailleFic","tour","duree","frequence","prix","esc1","esc2","esc3","esc4","esc5","esc6","esc7","esc8","esc9","esc10","esc11","esc12","esc13","esc14","esc15","esc16","esc17","esc18","esc19","esc20","esc21","esc22","esc23","esc24"]
escales=[]



site='http://www.mer-et-voyages.info/voyages_en_cargo.php?p='+str(page)+'&ville='+ville

try:
with urllib.request.urlopen(site) as f:
h2=f.read().decode('Latin- 1')
except UnicodeDecodeError:
pass

...

1 réponse

ElementW Messages postés 5690 Statut Contributeur 1 224
 
'lut, la source des pages du site précisent clairement
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Or tu décodes la page comme étant en Latin-1! Normal donc que ça échoue. Essaies avec
h2=f.read().decode('utf-8')
0
deve
 
j'ai essayé, ça ne change rien:
que je fasse
h2=f.read().decode('utf-8')
ou
h2=f.read().decode('Latin-1')
ou
h2=f.read()
le pb est le même, je n'y comprends rien!
0
ElementW Messages postés 5690 Statut Contributeur 1 224
 
Hum désolé je n'ai pas assez bien lu... Ceci dit ma remarque tient quand même.
L'erreur se plaint lors de l'encodage d'un texte, or tu n'en fais pas ici... Quel est le reste de ton script?
0
lucrecife Messages postés 6 Statut Membre > ElementW Messages postés 5690 Statut Contributeur
 
peu importe le reste, ça bloque à "read()"
J'interroge un site pour obtenir des infos.
Quand je fais un ctrlU de la page web ,il est bien écris que l'encodage est utf-8,,mais python bloque sur un caractère... et me loupe une page sur 5!
0