FLEXI-STREAMS - Flexible bivalent streams for Common Lisp
FLEXI-STREAMS implements "virtual" bivalent streams that can be layered atop real binary or bivalent streams and that can be used to read and write character data in various single- or multi-octet encodings which can be changed on the fly. It also supplies in-memory binary streams which are similar to string streams.
Complete documentation can be found in the docs
directory or at the project documentation site.