Was ist unicode_literals verwendet?

Bekomme ich ein seltsames problem mit __future__.unicode_literals in Python. Ohne Import unicode_literals bekomme ich die richtige Ausgabe:

# encoding: utf-8
# from __future__ import unicode_literals
name = 'helló wörld from example'
print name

Aber wenn ich die unicode_literals import:

# encoding: utf-8
from __future__ import unicode_literals
name = 'helló wörld from example'
print name

Bekam ich diese Fehlermeldung:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 4: ordinal not in range(128)

Tut unicode_literals Kodieren jeder string als utf-8?
Was soll ich tun, überschreiben Sie diese Fehler?

  • Der import hat nur einen Effekt auf Python 2; es macht Python-2 Verhalten sich wie Python 3, wenn es um string-Literale. Es macht den code cross-Python-version kompatibel.
  • Das Problem ist, mit dem terminal, es ist nicht zur Anzeige von nicht-ascii-Zeichen.
  • Da Sie über print als einer Anweisung müssen Sie mit Python 2 statt; ich habe entfernt die python-3.x tag, die mich warf.
  • Nein, es ist perfekt in der Lage, bereits codierte UTF-8-bytes. Es ist nicht der Kommunikation bei Python, dass es UTF-8 verwenden.
  • Ja, hätte ich formuliert, dass besser.
InformationsquelleAutor ssj | 2014-04-29
Schreibe einen Kommentar