[gull] unicode

Marc Mongenet Marc.Mongenet at freesurf.ch
Mon Nov 29 17:40:03 CET 2004


BRINER Cedric wrote:
> unicode et pyton.
> 
> voila j'aimerai faire fonctionner ca sur ma Sarge:
>  > more qq.py
> #!/usr/local/bin/python
> # -*- coding: UTF-8 -*-
> q=u"C\xe9dric"
> print q
> 
>  > python qq
> Traceback (most recent call last):
>   File "qq", line 4, in ?
>     print q
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in 
> position 1: ordinal not in range(128)
> Exit 1

Je suppose que le but est d'afficher "Cédric".
Le caractère é est effectivement le caractère numéro 233 (E9 en hexa)
en Unicode, mais cela se code sur 1 octet uniquement avec l'encodage
de ISO-8859-1. Avec l'encodage UTF-8, 'é' se code sur deux octets :
C3 A9.

Note : un moyen simple et pratique de voir comment se code un caractère
en UTF-8 est de rechercher ce caractère dans Google. Le navigateur
URL-encode en UTF-8 (car Google utilise l'UTF-8) les caractères
"spéciaux", ce qui permet de voir les octets des caractères encodés
dans l'URL de la requête :
http://www.google.com/search?num=100&hl=en&lr=&safe=off&q=C%C3%A9dric&btnG=Search
Notez le "q=C%C3%A9dric", le %C3%A9 représente les deux octets du 'é'
en UTF-8.

Marc Mongenet



More information about the gull mailing list