I believe the file is being read correctly but is using the wrong encoding when output. This is based on the fact that you get the proper results in IDLE.
I would suggest trying to use print(line.encode('utf-8')) but I'm afraid I don't know if Python 3 will print a bytes object properly.