For the average text RLE is not very suitable, since normal text doesn't have many repeating characters in it.
Since you put a number (at least 1 byte) in front of every token, it'll make the "compressed" text larger than the original.
This:
The quick brown fox jumps over the lazy dog.
will be "compressed" into this:
1T1h1e1 1q1u1i1c1k1 1b1r1o1w1n1 1f1o1x1 1j1u1m1p1s1 1o1v1e1r1 1t1h1e1 1l1a1z1y1 1d1o1g1.
Also, your compression routine crashes if the input string is empty.
Bart