I am having a slight problem with UTF-8 output with Python.  I have the
following program:

x = 0

while x < 0x4000:
    print u"This is Unicode code point %d (0x%x): %s" % (x, x,
unichr(x))
    x += 1

This program works perfectly when run directly:

[EMAIL PROTECTED]:~/tmp$ python test.py
This is Unicode code point 0 (0x0):
This is Unicode code point 1 (0x1):
This is Unicode code point 2 (0x2):
This is Unicode code point 3 (0x3):
This is Unicode code point 4 (0x4):
This is Unicode code point 5 (0x5):
This is Unicode code point 6 (0x6):
This is Unicode code point 7 (0x7):
This is Unicode code point 8 (0x8):
This is Unicode code point 9 (0x9):
This is Unicode code point 10 (0xa):
(... continued)

However, when I attempt to redirect the output to a file:

[EMAIL PROTECTED]:~/tmp$ python test.py >f
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    print u"This is Unicode code point %d (0x%x): %s" % (x, x,
unichr(x))
UnicodeEncodeError: 'ascii' codec can't encode character u'\x80' in
position 39: ordinal not in range(128)

This is slightly confusing to me.  The output goes all the way to the
end of the program when it is not redirected.  Why is Python treating
the situation differently when the output is redirected?  This failure
occurs for all redirection, by the way: >, >>, 1>2, pipes, and so forth.

Any ideas?

    — Mike

--
Michael B. Trausch
                    [EMAIL PROTECTED]
Phone: (404) 592-5746
                          Jabber IM:
                    [EMAIL PROTECTED]
              [EMAIL PROTECTED]
Demand Freedom!  Use open and free protocols, standards, and software!

Attachment: signature.asc
Description: This is a digitally signed message part

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to