Je vais chercher une page Web (http://autoweek.com) et en essayant de le traiter, mais obtenir une erreur d'encodage. Autoweek déclare "iso-8859-1" encoding et a le mot "Nurburgring" (u avec tréma)Unicode problème Django-Python-URLLIB-MySQL
je:
# -*- encoding: utf-8 -*-
import urllib
webpage = urllib.urlopen(feed.crawl_url).read()
webpage.decode("utf-8")
il me donne l'erreur suivante:
'utf8' codec can't decode bytes in position 7768-7773: unsupported Unicode code range"
si je contourner la phase de .decode et effectue une analyse avec la bibliothèque lxml, il déclenche une erreur quand je gardais titre analysable à la base de données:
'utf8' codec can't decode bytes in position 45-50: unsupported Unicode code range
Ma base de données a le jeu de caractères UTF8 et le classement général utf-ci
Mes paramètres:
Django
Python
MySQL 2.4.3 5.0.22
MySQL-python 1.2.1
mod_python 3.2.8
J'ai besoin de sérialiser cette solution pour toutes les pages (de codages différents) que je cherche. Je dois donc aller chercher, extraire l'encodage (si c'est déclaré) et ensuite décoder. Une solution plus facile? –
Non. C'est la seule solution, sauf si vous voulez jeter les caractères incorrects. Et ce n'est honnêtement pas très compliqué. –
+1 vous devez décoder en utilisant iso-8859-1. J'ai vérifié cela par rapport à votre URL et cela fonctionne très bien. – mhawke