A thread on the Python Mac sig got me to wondering if there is any magic in
Python 3's print function for printing Unicode.  Nope, no magic:

    >>> print("\xef")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Users/skip/local/lib/python3.0/io.py", line 1246, in write
        b = encoder.encode(s)
      File "/Users/skip/local/lib/python3.0/encodings/ascii.py", line 22, in 
encode
        return codecs.ascii_encode(input, self.errors)[0]
    UnicodeEncodeError: 'ascii' codec can't encode character '\xef' in position 
0: ordinal not in range(128)

Which kind of confuses me because on my system my default encoding is utf-8:

    >>> sys.getdefaultencoding()
    'utf-8'

Well, then how about an encoding arg?  Nope again:

    >>> print("\xef", encoding="utf-8")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'encoding' is an invalid keyword argument for this function

help(print) doesn't offer any suggestions either.  Any chance that maybe an
encoding keyword arg could make it into an upcoming 3.0aN release?
(Or... Am I missing a simple solution to the problem?)  It seems that
printing Unicode ought to be easier in Python 3 than it is.

Skip
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to