2016-05-12 39 views
-1

我正在使用Clickatell REST API发送短信。我需要发送一些特殊字符(如Ä),这些字符在GSM 03.38标准(以及拉丁语-1)中都可用。所以,我不想使用unicode。但是,无论我如何发送消息,我都不会得到我想要的。无论是消息正确保存在Clickatell中,但设备上出现奇怪的符号,或者我对消息进行编码,然后在Clickatell中获得十六进制字母,而在设备上完全没有。在常见问题解答中有HTTP API的解决方案,但它对REST API没有帮助。我联系了支持人员,但我已经等了3天才得到答案。有人在这里有API的经验吗?通过REST API使用特殊GSM字符的Clickatell SMSes

下面是我的一些不成功的尝试:

数据显示正确的Clickate页面上,但不是在SMS

string data = clickatellEncoding.GetString(memoryStream.ToArray()); 
StringContent stringContent = new StringContent(data, clickatellEncoding, 
    jsonContentType 

的Clickate页面上六角信,没有收到短信

byte[] utfBytes = utf8.GetBytes(data); 
byte[] clickatellBytes = Encoding.Convert(utf8, clickatellEncoding, utfBytes); 
data = clickatellEncoding.GetString(clickatellBytes); 
StringContent stringContent = new StringContent(data, clickatellEncoding), 
    jsonContentType); 

我也写了一个从utf-8到GSM 03.38的转换器,结果在Clickatell页面上又是十六进制字母,没有短信。

任何想法我可以尝试什么?

Clickatell编码是latin-1。因此,理论上我应该发送一切拉丁-1,它应该工作...

回答

0

当前的Clickatell REST API预计Windows-1252字符集。如果您坚持这一点并且角色仍然无法交付,支持团队将需要调查您发送给您的网络的投递路线。

+0

那么,有德国网络和我使用的设备所有的时间与这些字符的短信。所以,我在考虑在实施过程中出现了一些错误。 – Antiohia