Preferences

robgibbons parent
May I ask why you're encoding as Base64? Does this not increase the payload size significantly?

machrider
Probably because of the restricted character set available in SMS messages?

http://en.wikipedia.org/wiki/GSM_03.38

Right, but with the GSM 7-bit alphabet they could easily expand their index table to 127 entries rather than Base64's 64, netting them much greater efficiency.
Sanddancer
Yes, Base64 encoding will expand a payload by 33%. However, SMS limits the character set you can send easily, with the most common mode of transit being the 7 bit SMS character set. With the SMS character set having an escape character that can get in the way of doing a direct encoding, I imagine they went with Base64 because there were already libraries for it, minimizing the work they had to do at this stage.
Base64 adds +30% but I guess you can’t send binary data in an SMS, you must encode it in some way.
You can send anything in the GSM 7-bit alphabet, which has 128 characters rather than Base64's 64-entry index table.

They could gain a lot of efficiency by using a 127-entry index table (or 128 if the ESC character doesn't need to be avoided - I don't know how the Android SMS APIs handle it) rather than a 64-entry one.

This item has no comments currently.