UTF-8 error in macOS version WingIDE


168
views
1
10 weeks ago by
Hi,
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=';')
    next(reader)  
    for row in reader:
        print(row)​

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.

Thanks!

Community: Wing Python IDE

2 Answers


4
10 weeks 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)
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 10 weeks ago by Wingware Support  
0
10 weeks ago by
Thank you so much! It works
Please login to add an answer/comment or follow this question.

Similar posts:
Search »