【发布时间】:2018-05-23 05:28:48
【问题描述】:
我可以使用 python gsmmodem 发送任何单部分或多部分无 Unicode 短信。 这是我的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import logging
PORT = '/dev/ttyUSB2'
BAUDRATE = 115200
PIN = None
from gsmmodem.modem import GsmModem
def main():
print('Initializing modem...')
modem = GsmModem('/dev/ttyUSB2', 115200 )
modem.smsTextMode = False
modem.connect(PIN)
try:
message = u'ننننننننننننن نننننننتتتتتتتتتتت تتتتتتتتتتتتتتتت تتتتتتتتتتتتت تتتتتتتتت تتتتتتتتتتتتتتتتتتت تتتتتتت تتتتتتتتتتتتتتت تتتتتتتتتتتتتت تتتتتتتتتت'
modem.sendSms('09355666238' , message)
finally:
modem.close();
if __name__ == '__main__':
main()
它成功发送了一部分 Unicode 消息(少于 70 个字符),但是对于超过 70 个字符的消息会抛出此错误消息:
File "/usr/local/lib/python2.7/dist-packages/gsmmodem/modem.py", line 631, in sendSms
pdus = encodeSmsSubmitPdu(destination, text, reference=self._smsRef)
File "/usr/local/lib/python2.7/dist-packages/gsmmodem/pdu.py", line 341, in encodeSmsSubmitPdu
pdu.append(userDataLength)
ValueError: byte must be in range(0, 256)
如何使用 python 发送多部分 unicode 短信?
【问题讨论】: