A preferred embodiment of the invention provides a system for the dynamic encoding of a stream of characters. In a preferred embodiment, the system includes an input for receiving a stream of characters, and an output for providing encoded data. The system also includes a provision for storing, accessing, and updating a table (what I call a "followset" table) for each of a plurality of characters, listing candidates for the character which may follow, in the stream, the character with which the table is associated. The system also includes a provision for furnishing at the output, for a given character in the stream at the input, a signal indicative of the position, occupied by the given character, in the followset character which immediately precedes the given character in the stream of the input. A preferred embodiment of the invention also provides a system for decoding the encoded data, wherein the decoder utilizes a followset table.