INADA Naoki added the comment: This patch doesn't change current behavior of "decode by chunk". It's difficult to support changing encoding via header, like Python's encoding cookie.
>>> import io >>> buff = io.BytesIO("hello\nこんにちは".encode('utf-8')) >>> f = io.TextIOWrapper(buff, encoding='ascii') >>> f.readline() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/inada-n/work/python/cpython/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 6: ordinal not in range(128) >>> >>> buff = io.BytesIO("hello\nこんにちは".encode('utf-8')) >>> f = io.TextIOWrapper(buff, encoding='ascii') >>> f.read(6) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/inada-n/work/python/cpython/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 6: ordinal not in range(128) ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15216> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com