9
votes

Liste d'impression des caractères Unicode sans caractères d'évacuation

Si vous avez une chaîne comme ci-dessous, avec unicode caractères, vous pouvez l'imprimer et obtenir la version non évaluée: xxx pré>

mais si nous avons une liste contenant la chaîne ci-dessus et l'imprimez-la : P>

>>> s = u'åäö'
>>> s
u'\xe5\xe4\xf6'
>>> print s
åäö
>>> s = [u'åäö']
>>> s
[u'\xe5\xe4\xf6']
>>> print s
[u'\xe5\xe4\xf6']


0 commentaires

5 Réponses :


8
votes

est-ce satisfaisant? XXX


1 commentaires

Y a-t-il un tel contexte pour unicode strings? J'ai mis à jour ma question pour ce cas de chaînes UNICODE.



3
votes

dans Python 2.x La valeur par défaut est ce que vous rencontrez:

>>> s = ['äåö']
>>> s
['äåö']


1 commentaires

Est-il possible de l'afficher correctement dans Python 2.7 aussi?



9
votes

Lorsque vous imprimez une chaîne, vous obtenez la sortie de la méthode __ str __ code> de l'objet - dans ce cas, la chaîne sans guillemets. La méthode __ str __ code> d'une liste est différente, elle crée une chaîne contenant l'ouverture et la fermeture [] code> et la chaîne produite par la méthode __ code> chaque objet contenu dans. Ce que vous voyez est la différence entre __ str __ code> et __ rep __ code>.

Vous pouvez créer votre propre chaîne à la place: P>

print u'[' + u','.join(u"'" + unicode(x) + u"'" for x in s) + u']'


2 commentaires

@int_ua Vous pouvez faire une fonction récursive qui le gère correctement. Mais ce n'était pas la question.


C'était la meilleure réponse jusqu'à présent.



0
votes

Une autre solution xxx

donne [¤ã ¥ ö, ¤Ã ¥]


0 commentaires

0
votes

On peut utiliser cette classe wrapper: xxx


0 commentaires