Podczas przesyłania danych wyjściowych programu w Pythonie interpreter Pythona nie rozumie kodowania i ustawia go na Brak. Oznacza to program taki jak ten:
# -*- kodowanie: utf-8 -*- print u"åäö"
będzie działać poprawnie przy normalnym uruchomieniu, ale nie powiedzie się z:
UnicodeEncodeError: kodek „ascii” nie może zakodować znaku u”xa0” na pozycji 0: liczba porządkowa poza zakresem(128)
gdy jest używany w sekwencji potoku.
Jaki jest najlepszy sposób, aby to zadziałało podczas potoku? Czy mogę po prostu powiedzieć mu, aby używał dowolnego kodowania powłoki/systemu plików/cokolwiek jest
Sugestie, które do tej pory widziałem, to bezpośrednia modyfikacja pliku site.py lub zakodowanie domyślnego kodowania za pomocą tego hacka:
# -*- coding: utf -8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") print u"åäö"
Czy istnieje lepszy sposób na tworzenie rurociągów pracować?