I know that unicode is the way to go in Python 3.1, but it is getting in my way right now in my Unix scripts. How do I write a chr(253) to a file?
#nntst2.py import sys,codecs mychar=chr(253) print(sys.stdout.encoding) print(mychar) > ./nntst2.py ISO8859-1 ý > ./nntst2.py >nnout2 Traceback (most recent call last): File "./nntst2.py", line 5, in <module> print(mychar) UnicodeEncodeError: 'ascii' codec can't encode character '\xfd' in position 0: ordinal not in range(128) > cat nnout2 ascii ..Oh great! ok lets try this: #nntst3.py import sys,codecs mychar=chr(253) print(sys.stdout.encoding) print(mychar.encode('latin1')) > ./nntst3.py ISO8859-1 b'\xfd' > ./nntst3.py >nnout3 > cat nnout3 ascii b'\xfd' ..Eh... not what I want really. #nntst4.py import sys,codecs mychar=chr(253) print(sys.stdout.encoding) sys.stdout=codecs.getwriter("latin1")(sys.stdout) print(mychar) > ./nntst4.py ISO8859-1 Traceback (most recent call last): File "./nntst4.py", line 6, in <module> print(mychar) File "Python-3.1.2/Lib/codecs.py", line 356, in write self.stream.write(data) TypeError: must be str, not bytes ..OK, this is not working either. Is there any way to write a value 253 to standard output? -- http://mail.python.org/mailman/listinfo/python-list