【问题标题】:Clickatell SMSes with special GSM characters through REST API通过 REST API 使用带有特殊 GSM 字符的 Clickatell 短信
【发布时间】:2016-09-07 19:04:03
【问题描述】:

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

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

数据在 Clickatell 页面上正确显示,但在 SMS 中没有

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

Clickatell 页面上的十六进制字母,未收到短信

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。 所以,理论上我应该用 latin-1 发送所有内容,它应该可以工作......

【问题讨论】:

    标签: c# encoding sms sms-gateway clickatell


    【解决方案1】:

    当前 Clickatell REST API 需要 Windows-1252 字符集。如果您坚持这一点,但角色仍然没有送达,支持团队将需要调查您要发送到的网络的送达路线。

    【讨论】:

    • 嗯,有德国网络,我使用的设备总是收到带有此类字符的短信。所以,我在想我在实现中有一些错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多