1 # -*- coding: ISO-8859-1 -*- 2 3 import sys 4 5 # Print bytes. 6 7 s = b"???" 8 print s # ??? 9 10 # Obtain text and print it. 11 12 # Explicitly from bytes. 13 14 u = unicode("???", "ISO-8859-1") 15 print u # ?????? 16 print u.encode("ISO-8859-1") # ??? 17 print u.encoding # ISO-8859-1 18 19 # Explicitly from Unicode literals. 20 21 u2 = u"???" 22 print u2 # ?????? 23 print u2.encode("ISO-8859-1") # ??? 24 print u2.encoding # ISO-8859-1 25 26 # Implicitly from string literals. 27 28 #u3 = "???" 29 #print u3 # ?????? 30 #print u3.encode("ISO-8859-1") # ??? 31 #print u3.encoding # ISO-8859-1 32 33 # Combine bytes and text. 34 # The text should be decoded. 35 36 su = s + u 37 print su # ?????? 38 print su.__class__ # __builtins__.str.string 39 40 # Combine text and bytes. 41 # The text should be decoded. 42 43 us = u + s 44 print us # ?????? 45 print us.__class__ # __builtins__.str.string 46 47 # Combine text and text. 48 49 uu2 = u + u2 50 print uu2 # ?????? 51 print uu2.__class__ # __builtins__.unicode.utf8string 52 print uu2.encoding # ISO-8859-1 53 54 # Inspect and update the encoding of stdout. 55 # Note that su and us are byte strings and are not recoded. 56 57 print sys.stdout.encoding # None 58 59 sys.stdout.encoding = "ISO-8859-1" 60 print sys.stdout.encoding # ISO-8859-1 61 print u # ??? 62 print su # ?????? 63 print us # ?????? 64 65 sys.stdout.encoding = "UTF-8" 66 print sys.stdout.encoding # UTF-8 67 print u # ?????? 68 print su # ?????? 69 print us # ??????