I think it should stick to Python's defaults which intentionally changed to `unicode`. It looks like `encoding=None` is valid to pass into `io.read`. Let's remove the `or 'ascii'` and make it pass the encoding directly through with a `None` fallback.

http://docs.python.org/2/library/io.html#io.open