I'm looking for a routine that will encode a string (stream of bytes) into an arbitrary base/alphabet (like base64 encoding but I get to choose the alphabet). I've seen a few routines that do base X encoding for a number, but not for a string.
2 Answers
There is my implementation of BaseX (BaseN) encoding algorithm: https://github.com/KvanTTT/BaseNcoding.
Also you can experiment with different alphabets and parameters at demo-site: http://kvanttt.github.io/BaseNcoding/
Comments
Every algorithm I've seen (and written) for this has a sequence of characters, and does a divmod of the number by the length of the sequence, uses the mod for the index into the sequence for the digit character, and feeds the div back into the process.
3 Comments
Bradford
Would it be possible for you to provide a sample of this in python or ruby? For example, I want to base36 encode a string.
Ignacio Vazquez-Abrams
@Bradford: Well, which part of the implementation are you having trouble with?
Stringinput, withBigIntegerstackoverflow.com/questions/2863954/…