[OSM-dev-fr] Conversion en batch de fichier OGR vers OSM...
Sylvain Maillard
sylvain.maillard at gmail.com
Jeu 28 Mar 22:13:40 UTC 2013
http://docs.python.org/2/howto/unicode.html
"Encodings don’t have to handle every possible Unicode character, and most
encodings don’t. For example, Python’s default encoding is the ‘ascii’
encoding. The rules for converting a Unicode string into the ASCII encoding
are simple; for each code point:
1. If the code point is < 128, each byte is the same as the value of the
code point.
2. If the code point is 128 or greater, the Unicode string can’t be
represented in this encoding. (Python raises a
UnicodeEncodeError<http://docs.python.org/2/library/exceptions.html#exceptions.UnicodeEncodeError>exception
in this case.)"
=> ça ressemble quand même vachement au problème initial ...
Il s'agit peut-être d'un problème d'api au sein de python, je n'ai pas été
regarder, mais le résultat est le même : tout appel à un module qui n'est
pas explicitement écrit de manière à gérer l'unicode, utilisera l'encodage
par défaut qui est l'ascii et générera ce genre d'erreurs !
Sylvain
Le 28 mars 2013 21:10, Philippe Verdy <verdy_p at wanadoo.fr> a écrit :
> Le 28 mars 2013 17:36, Sylvain Maillard <sylvain.maillard at gmail.com> a
> écrit :
> > Salut,
> >
> > oui, ce problème est clairement lié à l'encodage des caractère !
> > En interne Python 2 utilise par défaut l'ascii
>
> Faux, Python en interne n'utitile que des chaines d'octets sans savoir
> rien de plus sur le codage, ni me^me si cela contient effectivement du
> texte. Ce support des encagages est apporté par les librairies Python
> selon leur propre API et l'usage qu'elle font de ces chaines d'octets.
>
> Pytonh gère aussi des chaines dites "Unicode" sauf que ces chaines
> n'ont aucune obligation à être réellement codées selon Unicode, mais
> juste fr pouvoir coder un caractère Unicode dans une position unique.
> Dans les faits Pythin utilise alors pour cela en interne des chaines
> de mots 32-bits. Il peut aussi gérer des chaines de mots 16 bits.
>
> Il faut aussi distinguer ce que fait Python en interne dans le moteur
> de sa VM, de sa syntaxe de programmation qui elle ne dépend pas de
> Python lui-même mais d'une API aussi, celle de son analyseur
> lexico-syntaxique qui soumet ses analyses à son compilateur. Là encore
> ne pas confondre le langage de programmation avec ce pourquoi il est
> utilisé dans une application.
>
> Ces remarques ne sont pas spécifiques à Python, on les retrouve aussi
> dans d'autres langages (compilés ou non) : C/C++, Java, C#, PHP,
> JavaScript/ECMAScript (ne pas confondre Javascript avec HTML qui a ses
> propres spécifications en terme de codage, ce que n'a pas Javascript
> lui-même qui en est séparé)...
>
> Bref ne pas tout mélanger
>
> _______________________________________________
> dev-fr mailing list
> dev-fr at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev-fr
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20130328/17edc906/attachment.html>
Plus d'informations sur la liste de diffusion dev-fr