StreamRecoder Objects  The StreamRecoder provide a frontend -
backend view of encoding data which is sometimes useful when
dealing with different encoding environments.  The design is
such that one can use the factory functions returned by the
lookup() function to construct the instance.
class StreamRecoder( stream, encode, decode, Reader, Writer,
errors) Creates a StreamRecoder instance which implements a two-
way conversion: encode and decode work on the frontend (the
input to read() and output of write()) while Reader and Writer
work on the backend (reading and writing to the stream).  You
can use these objects to do transparent direct recodings from
e.g. Latin-1 to UTF-8 and back.  stream must be a file-like
object.  encode, decode must adhere to the Codec interface.
Reader, Writer must be factory functions or classes providing
objects of the StreamReader and StreamWriter interface
respectively.  encode and decode are needed for the frontend
translation, Reader and Writer for the backend translation. The