159 votes

Python: À L'Aide .format() sur un Unicode échappé à la chaîne

Je suis à l'aide de Python 2.6.5. Mon code requiert l'utilisation de la "supérieur ou égal à" signer. Ici, il va:

>>> s = u'\u2265'
>>> print s
>>> ≥
>>> print "{0}".format(s)
Traceback (most recent call last):
     File "<input>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
  in position 0: ordinal not in range(128)`  

Pourquoi j'ai cette erreur? Est-il une bonne façon de faire cela? J'ai besoin d'utiliser l' .format() fonction.

247voto

Mad Scientist Points 6232

Il suffit de faire le deuxième chaîne a également une chaîne unicode

>>> s = u'\u2265'
>>> print s
≥
>>> print "{0}".format(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265' in position 0: ordinal not in range(128)
>>> print u"{0}".format(s)
≥
>>> 

71voto

unicodes besoin d' unicode des chaînes de format.

>>> print u'{0}'.format(s)
≥

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X