encoding is optional for Readable._read