1. A method of data compression, comprising steps of: separating an uncompressed, coded data stream into units; comparing said units against at least one user-selected dictionary of units having compressed code equivalents for each unit stored in association with the uncompressed encoded units; and outputting a header for compressed data comprising indications for defining the identity of each of said user-selected dictionaries used in compressing said data; outputting the compressed code equivalents for incoming units for which a true comparison is found in said comparing step and outputting the uncompressed encoded character stream for any said unit for which no true comparison is found; and arranging the entries in said dictionaries for said units in an order of merit which is the weighted frequency of use established by multiplying the average frequency of occurrence of each said unit in the language in which it is used by its length in characters and arranging the resulting products of said multiplying in decreasing order of magnitude.