Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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


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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: