Great question — answering as the UphillTech team:
There is now :) Thanks to Chad for pointing out that this wasn't quite right Python2 version # -*- coding: utf8 -*- gsm = (u"@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞ\x1bÆæßÉ !\"#¤%&'()*+,-./0123456789:;<=>" u"?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà") ext = (u"````````````````````^```````````````````{}`````\\````````````[~]`" u"|````````````````````````````````````€``````````````````````````") def gsm_encode(plaintext): res = "" for c in plaintext: idx = gsm.find(c) if idx != -1: res += chr(idx) continue idx = ext.find(c) if idx != -1: res += chr(27) + chr(idx) return res.encode('hex') print gsm_encode(u"Hello World") The output is hex. Obviously you can skip that if you want...
Full answer by John La Rooy: https://stackoverflow.stackexchange.com/a/2453027 (CC BY-SA 3.0).
Need it done for your business? UphillTech.