On 8/26/2020 11:10 AM, Chris Green wrote:

I have a simple[ish] local mbox mail delivery module as follows:-
...
It has run faultlessly for many years under Python 2.  I've now
changed the calling program to Python 3 and while it handles most
E-Mail OK I have just got the following error:-

     Traceback (most recent call last):
       File "/home/chris/.mutt/bin/filter.py", line 102, in <module>
         mailLib.deliverMboxMsg(dest, msg, log)
...
       File "/usr/lib/python3.8/email/generator.py", line 406, in write
         self._fp.write(s.encode('ascii', 'surrogateescape'))
     UnicodeEncodeError: 'ascii' codec can't encode character '\ufeff' in 
position 4: ordinal not in range(128)

'\ufeff' is the Unicode byte-order mark. It should not be present in an ascii-only 3.x string and would not normally be present in general unicode except in messages like this that talk about it. Read about it, for instance, at
https://en.wikipedia.org/wiki/Byte_order_mark

I would catch the error and print part or all of string s to see what is going on with this particular message. Does it have other non-ascii chars?


--
Terry Jan Reedy

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

Reply via email to