[Python] Re: [Commits] python.it commit r258
Manlio Perillo
manlio_perillo a libero.it
Gio 11 Gen 2007 15:11:30 CET
commit a svn.python.it ha scritto:
> Author: manlio
> Date: Thu Jan 11 15:07:11 2007
> New Revision: 258
>
> Modified:
> code/pythonisti/trunk/pythonisti/geo/google.py
> code/pythonisti/trunk/pythonisti/geo/models.py
> Log:
> Corretta gestione encoding
>
> Modified: code/pythonisti/trunk/pythonisti/geo/google.py
> ==============================================================================
> --- code/pythonisti/trunk/pythonisti/geo/google.py (original)
> +++ code/pythonisti/trunk/pythonisti/geo/google.py Thu Jan 11 15:07:11 2007
> @@ -38,7 +38,7 @@
> info = fp.info()
> content_type = info['content-type']
> charset = _get_charset(content_type) or "utf-8"
> -
> + charset = 'iso-8859-1' # XXX Google madness?
> return fp.read().decode(charset)
>
C'è un problema qui.
Come mai Google usa iso-8859-1?
Come si fa a sapere quale encoding usare?
Vi ricordo che Google nel content type restituisce due encoding:
utf-8 e iso-8859-1
>
>
> Modified: code/pythonisti/trunk/pythonisti/geo/models.py
> ==============================================================================
> --- code/pythonisti/trunk/pythonisti/geo/models.py (original)
> +++ code/pythonisti/trunk/pythonisti/geo/models.py Thu Jan 11 15:07:11 2007
> @@ -21,10 +21,11 @@
>
> def save(self):
> # Setup the computed fields
> - response = google.get_geo_location(self.location)
> + # XXX Django does not supports Unicode
> + response = google.get_geo_location(self.location.decode('utf-8'))
> coordinates = response['Point']['coordinates'][:-1]
>
> - self.address = response['address']
> + self.address = response['address'].encode('utf-8')
> self.geolocation = dumps(coordinates)
> self.geolocation_detail = dumps(response)
>
Dato che Django non supporta Unicode, dobbiamo fare l'encoding
esplicitamente.
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python