Python 2.7 编码unicode将正确打印字符串,但使用用于发送SMS的API发送带有问号的SMS

Python 2.7 编码unicode将正确打印字符串,但使用用于发送SMS的API发送带有问号的SMS,python-2.7,unicode,encode,Python 2.7,Unicode,Encode,我想用几种语言发送短信息。它对英语很好。但是如果我想用法语或西班牙语发送短信息,我有一个问题。 消息是Unicode格式的。在此之后 message = message.encode('utf-8') 消息是一个字符串,并正确打印结果。但是,当我想使用API发送消息时,它会发送问号????????我用手机测试了它,而不是像a、έ之类的字符。 当我执行消息[0]时,它会给我?。所以我猜编码“utf-8”不能正常工作。消息包含法语、西班牙语、德语或其他字符。它是一个变量,因此每次都包含不同的语言。

我想用几种语言发送短信息。它对英语很好。但是如果我想用法语或西班牙语发送短信息,我有一个问题。 消息是Unicode格式的。在此之后

message = message.encode('utf-8')
消息是一个字符串,并正确打印结果。但是,当我想使用API发送消息时,它会发送问号????????我用手机测试了它,而不是像a、έ之类的字符。 当我执行消息[0]时,它会给我?。所以我猜编码“utf-8”不能正常工作。消息包含法语、西班牙语、德语或其他字符。它是一个变量,因此每次都包含不同的语言。 以下是我的代码示例:

to = queue_mobile 
message = queue_message
gateway = AfricasTalkingGateway(username, apikey)

try:
    results = gateway.sendMessage(to, message)
    for recipient in results:
        print 'number=%s;status=%s;messageId=%s;cost=%s' % (recipient['number'],
                                                                        recipient['status'],
                                                                        recipient['messageId'],
                                                                        recipient['cost'])
如果不对消息进行编码,它将返回API ascii编解码器无法对字符0-6进行编码的异常。 如果我对消息进行“utf-8”编码,它会发送带有问号的短信。

您使用哪种api? 你能展示一些示例代码吗? 您的sms网关支持哪些字符集

在GSM中,每种语言都有不同的7bit字符集

也许这会有帮助: