Regarding the examples:
" 0
" 1
# 42
Why is the length stored in base 92 while the number is stored in base 10?Why not just store them both in base 128 or 127 (if you want C strings)? You can't use base 256 because some strings won't be valid UTF-8, but base 127 or 128 seems fine.
Do you want some notion of human readability? That isn't in the problem statement. Your problem statement seems fairly imprecise in a couple ways.