17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Essais d’encodage<br />

Syntaxe du langage<br />

CHAPITRE 4<br />

>>> encode = u'je m\'apprête à être encodé'.encode('ISO-8859-15')<br />

>>> print(encode)<br />

je m'apprête à être encodé<br />

>>> u'je m\'apprête à être encodé'.encode('ISO-2022-KR')<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

UnicodeEncodeError: 'iso2022_kr' codec can't encode character u'\xea' in<br />

position 9: illegal multibyte sequence<br />

À RETENIR Utilisation de str pour les conversions de chaînes<br />

La primitive str n’a pas été utilisée ici car elle ne permet pas de convertir une chaîne unicode vers<br />

une chaîne string uniquement avec le codec par défaut, c’est-à-dire ascii. Si la chaîne unicode<br />

n’avait été composée que de caractères de la table ascii, cette conversion aurait fonctionné.<br />

La conversion de chaîne string vers unicode, appelée décodage, est basée sur le<br />

même principe.<br />

Essais de décodage<br />

>>> string = 'je m\'apprête à être décodé, j\'ai peur'<br />

>>> string.decode('ISO-8859-15')<br />

u"je m'appr\xeate \xe0 \xeatre d\xe9cod\xe9, j'ai peur"<br />

>>> unicode(string, 'ISO-8859-15')<br />

u"je m'appr\xeate \xe0 \xeatre d\xe9cod\xe9, j'ai peur"<br />

La primitive unicode peut être utilisée au même titre que la méthode decode, car elle<br />

prend en deuxième paramètre le nom du codec, contrairement à str.<br />

Opérateur d’interpolation<br />

Les objets de type string et unicode possèdent un opérateur d’interpolation, ou<br />

opérateur de formatage, qui permet de convertir des marqueurs disposés dans la<br />

chaîne de caractères par des valeurs fournies à la suite.<br />

L’écriture est de la forme objet unicode ou string % valeurs, où valeurs est un<br />

tuple contenant l’ensemble des valeurs à utiliser dans le formatage.<br />

S’il n’y a qu’une seule valeur, l’élément peut être directement placé après l’opérateur<br />

modulo.<br />

69

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!