A common compression algorithim which has been around a long time is LZW compression.
It is used by GZIP, PKZIP and JAR to name but a few and is suitable for compressing text. It uses a combination of Huffman encoding, arithmetic coding and a few heuristics to make it more efficient.
simple idea about bit-packing
If you find compression and bit packing in general simple, you are a rare breed. ;)