Extended ASCII [solved]

D'Arcy Cain darcy at vex.net
Fri Jan 13 19:30:58 EST 2017

On 2017-01-13 05:44 PM, Grant Edwards wrote:
> On 2017-01-13, D'Arcy Cain <darcy at VybeNetworks.com> wrote:
>> Here is the failing code:
>> with open(sys.argv[1], encoding="latin-1") as fp:
>>    for ln in fp:
>>      print(ln)
>> Traceback (most recent call last):
>>    File "./load_iff", line 11, in <module>
>>      print(ln)
>> UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in
>> position 132: ordinal not in range(128)
>> I don't understand why the error says "ascii" when I told it to use
>> "latin-1".
> That can't be the failing code, since it's failing at line 11, and
> that's only 5 lines. It helps if we can tell which line generated the
> error.  ;)

I didn't think that the part leading up to it was relevant.  Here it is.

#! /usr/bin/python

import sys, os

if len(sys.argv) < 2:
     print("No file named", file=sys.stderr)

> I'm _guessing_ that line 11 is the print(), and it's barfing because

Of course.  That's why the error is listed right below it.

> stdout is using ascii encoding, and there's no way to encode that
> character in ascii so that it can be printed to an ascii output
> stream.

Thank you!  I know all about that but for some reason I did not have 
PYTHONIOENCODING=utf8 set on that particular machine.  I have it set on 
every other machine I work on an never thought to check.  My Unicode 
universe is all right again.


D'Arcy J.M. Cain
System Administrator, Vex.Net
http://www.Vex.Net/ IM:darcy at Vex.Net
VoIP: sip:darcy at Vex.Net

More information about the Python-list mailing list