This is actually an information theory problem which follows directly from the existence of incompressible numbers. The simple explanation for incompressibility goes something like this: Compression means reversibly mapping longer bitstrings to shorter bitstrings. For each bit you add to the length of a string, you multiply the number of values it can represent by two. That means you cannot uniquely (i.e. reversibly)…
I agree with your general idea, but, won't you run into a problem already before you run into the pigeon-hole principle?
How do you do that, even for a single one?
I mean, how do you "take" an infinite bitstring to assign a symbol to it, without first having to have a finite description of this infinite bitstring?
You can't say "this infinite bitstring is now represented by the symbol 01101", without directly or indirectly specifying what "this infinite bitstring" refers to, and you need to do that specifying in a finite amount of symbols.
So it seems to me that, if you were to (foolishly) try the above infinite task, you'd run out of infinite bitstrings (that you can describe) just as fast as you'd run out of finite bitstrings that you'd like to compress them with?