Issue 20424: _pyio.StringIO doesn't work with lone surrogates (original) (raw)
Unlike to io.StringIO, _pyio.StringIO doesn't work with lone surrogates.
import io, _pyio io.StringIO('\ud880') <_io.StringIO object at 0xb71426ec> _pyio.StringIO('\ud880') Traceback (most recent call last): File "", line 1, in File "/home/serhiy/py/cpython/Lib/_pyio.py", line 2065, in init self.write(initial_value) File "/home/serhiy/py/cpython/Lib/_pyio.py", line 1629, in write b = encoder.encode(s) File "/home/serhiy/py/cpython/Lib/encodings/utf_8.py", line 20, in encode return codecs.utf_8_encode(input, self.errors)[0] UnicodeEncodeError: 'utf-8' codec can't encode character '\ud880' in position 0: surrogates not allowed
Proposed patch adds support of lone surrogates to _pyio.StringIO.