Co właściwie robi funkcja python print ()?

Patrzyłem na topytanie i zacząłem się zastanawiać, co robiprint właściwie to zrobić.

Nigdy nie dowiedziałem się, jak używaćstring.decode() istring.encode() aby uzyskać ciąg Unicode „out” w interaktywnej powłoce Pythona w tym samym formacie, w jakim drukuje. Bez względu na to, co robię, dostaję też

Błąd UnicodeEncodeError lubciąg znaków ze znakiem „x ##” ...

To jest python 2.x, ale już próbuję naprawić swoje sposoby i faktycznie zadzwonićprint() :)

Przykład:

>>> import sys
>>> a = '\xAA\xBB\xCC'
>>> print(a)
ª»Ì
>>> a.encode(sys.stdout.encoding)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 0: ordinal not in range(128)
>>> a.decode(sys.stdout.encoding)
u'\xaa\xbb\xcc'

EDYTOWAĆ:

Dlaczego o to pytam? Jestem chory i zmęczonyencode() błędy i zdałem sobie z tego sprawęprint może to zrobić (przynajmniej w powłoce interaktywnej). Wiem, żeMUSI BYĆ DROGA w magiczny sposób kodowaćPRAWIDŁOWO, kopiąc informacje o tym, jakiego kodowania użyć gdzieś ...

DODATKOWE INFORMACJE: Używam Pythona 2.4.3 (# 1, 3 września 2009, 15:37:12) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] na linux2

>>> sys.stdin.encoding
'ISO-8859-1'
>>> sys.stdout.encoding
'ISO-8859-1'

Jednak wyniki są takie same w Pythonie 2.6.2 (r262: 71600, 8 września 2009, 13:06:43) w tym samym polu linux.

questionAnswers(4)

yourAnswerToTheQuestion