UTF-8 error in macOS version WingIDE

15 days ago by
I'm trying to read this utf-8 file 
in this Python script:
import csv

with open(csv_filename) as csv_fd:
    reader = csv.reader(csv_fd, delimiter=';')
    for row in reader:

But get an error in WingIDE (macOS):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0]builtins.UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 227: ordinal not in range(128)

There are "Unicode UTF-8" in "Preferences - Debugger - I/O" ("Encoding" fields).

If I run this script in Terminal there is no such kind of error.
There is no error if I run this script in Windows version of WingIDE.


modified 15 days ago by andrewd76   • written 15 days ago by andrewd76  

2 Answers

15 days ago by
This has something to do with the default encoding that is set in your environments (which explains why it might work when run via other methods)

hmm, looks like you're using Python 3 (at least through Wing).  I'd bet that

with open(csv_filename, encoding='utf-8') as csv_fd:

would work (assuming the file is encoded as utf-8)
written 15 days ago by Chris Curvey  
I think this is correct and best to always be explicit about encodings to avoid things like this.  One thing to note is that the Debugger > I/O Encoding is used only for locally launched processes.  If you're debugging on a remote host then the remote host configuration sets the I/O encoding instead under its Options tab.  This is because the correct encoding to use by default varies by OS.
written 15 days ago by Wingware Support  
15 days ago by
Thank you so much! It works
written 15 days ago by andrewd76  
Please login to add an answer/comment or follow this question.

Similar posts:
Search »