首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bulksms提供程序发送sms

使用bulksms提供程序发送sms
EN

Stack Overflow用户
提问于 2017-10-24 00:40:23
回答 1查看 494关注 0票数 0

我正在使用群发短信服务,https://www.bulksms.com

由于编码的原因,我无法发送阿拉伯语消息。

代码语言:javascript
复制
message = بريستيج
vals = {
      'username': gateway.login,
      'password': gateway.password,
      'message': message,
      'msisdn': mobile,
}
urllib.urlencode(vals)
req = urllib2.Request(url, params)
f = urllib2.urlopen(req)

UnicodeEncodeError: ascii编解码器无法对位置0-6中的字符进行编码:序数不在范围内(128)

我修复了这个问题:message.encode('utf8')

但是当消息发送时,将字符替换为??? ??????字符

感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2017-10-24 21:11:41

假设你使用的是BulkSMS.com的older EAPI,对于Unicode短信,你必须将dca=16bit添加到URL中,并将邮件正文编码为十六进制-请参阅如何发送Unicode (16位)短信?in the FAQ

使用the newer JSON API会容易得多,它将完成您最初期望的工作,而不需要额外的工作:

代码语言:javascript
复制
# coding=utf-8
import json
import urllib
import urllib2
import base64

data = {
      'to': '+1234567890',
      'body': 'بريستيج'
}

encodedData = json.dumps(data, encoding="utf-8", ensure_ascii=False)
request = urllib2.Request('https://api.bulksms.com/v1/messages?auto-unicode=true')
request.add_header('Content-Type', 'application/json;charset=utf-8')
base64string = base64.b64encode('%s:%s' % ('your_username', 'your_password'))
request.add_header("Authorization", "Basic %s" % base64string)
f = urllib2.urlopen(request, encodedData)
response = f.read()
f.close()
print response
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46894373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档