[New-bugs-announce] [issue20424] _pyio.StringIO doesn't work with lone surrogates

Serhiy Storchaka report at bugs.python.org
Tue Jan 28 21:26:55 CET 2014

New submission from Serhiy Storchaka:

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 "<stdin>", line 1, in <module>
  File "/home/serhiy/py/cpython/Lib/_pyio.py", line 2065, in __init__
  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.

components: IO, Unicode
files: stringio_lone_surrogates.patch
keywords: patch
messages: 209583
nosy: benjamin.peterson, ezio.melotti, haypo, hynek, pitrou, serhiy.storchaka, stutzbach
priority: normal
severity: normal
stage: patch review
status: open
title: _pyio.StringIO doesn't work with lone surrogates
type: behavior
versions: Python 3.3, Python 3.4
Added file: http://bugs.python.org/file33781/stringio_lone_surrogates.patch

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list