用于将纯文本(ASCII)转换为 GSM 7 位字符集的 Python 库?
是否有用于将 ascii 数据编码为 7 位 GSM 字符集(用于发送 SMS)的 python 库?
Is there a python library for encoding ascii data to 7-bit GSM character set (for sending SMS)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
现在有了 :)
感谢 Chad 指出这不是完全正确的
Python2 版本
输出是十六进制。显然如果你想要二进制流
Python3版本你可以跳过
There is now :)
Thanks to Chad for pointing out that this wasn't quite right
Python2 version
The output is hex. Obviously you can skip that if you want the binary stream
Python3 version
我从 gnibbler 的回答中得到了提示。这是我在查看在线转换器后以某种方式编写的脚本:http://smstools3。 kekekasvi.com/topic.php?id=288,它对我来说工作正常。编码和解码都可以。
I got tips from gnibbler's answer. Here is a script I somehow made up after looking at an online converter: http://smstools3.kekekasvi.com/topic.php?id=288, and it works correctly for me. Both encoding and decoding.
以上所有解决方案都不正确。 GSM 03.38 编码仅使用 7 位来表示一个字符,并且所有上述解决方案都使用字节对齐输出,这在大多数情况下与 ASCII 的结果相同。这是使用位串的正确解决方案。
我正在使用 Python 附加模块:
gsmencode.py:
输出:
All the above solutions are not correct. A GSM 03.38 encoding is using only 7 bits for a character and all above solutions are using byte aligned output, which is identical to ASCII in most cases as the result. Here is a proper solution using a bit string.
I'm using the Python the additional module:
gsmencode.py
:Output:
我找不到任何图书馆。但我认为这应该不需要图书馆。它有点容易做到。
这里是乔恩·斯基特本人也谈到了同一主题。
示例:
您还可以使用
dict
存储 ASCII 和 GSM 7 之间的映射位字符集。I could not find any library. But I think this should not need a library. Its somewhat easy to do.
Here is Jon Skeet himself on the same topic.
Example:
You can also use
dict
to store mapping between ASCII and GSM 7-bit character set.我最近遇到了类似的问题,我们从聚合器获取 gsm7bit 解码的短信,主要是带有西班牙语字符的 Verizon 运营商,但我们无法成功解码。
这是我在论坛中其他答案的帮助下创建的。这是针对 Python 2.7.x 的。
I faced a similar issue recently where we were getting gsm7bit decoded text messages, mostly for Verizon carrier with Spanish characters, from the aggregator and we were not able to decode it successfully.
Here is the one I created with the help of other answers in the forum. This is for Python 2.7.x.