-1

我正在使用 Clickatell REST API 发送短信。我需要发送一些在 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 发送所有东西,它应该可以工作......

4

1 回答 1

0

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

于 2016-05-12T06:59:37.967 回答