'Read up to ``size`` bytes, decode them using this reader\'s
encoding, and return the resulting unicode string.
:param size: The maximum number of bytes to read.  If not
specified, then read as many bytes as possible.
:type size: int
:rtype: unicode'

def read(self, size=None):

    chars = self._read(size)
    if self.linebuffer:
        chars = (u''.join(self.linebuffer) + chars)
        self.linebuffer = None
        self._rewind_numchars = None
    return chars
