C# 通过REST API单击带有特殊GSM字符的所有SMSE

C# 通过REST API单击带有特殊GSM字符的所有SMSE,c#,encoding,sms,sms-gateway,clickatell,C#,Encoding,Sms,Sms Gateway,Clickatell,我正在使用Clickatell REST API发送SMSE。我需要发送一些特殊字符(如Ä),这些字符在GSM 03.38标准(以及拉丁语-1)中都可用。所以,我不想使用unicode。然而,无论我如何发送信息,我都没有得到我想要的。要么消息正确保存在Clickatell中,但在设备上带有奇怪的符号,要么我对消息进行编码,然后在Clickatell中得到十六进制字母,而在设备上什么都没有。在常见问题解答中,有一个针对HTTP API的解决方案,但对REST API没有帮助。我联系了支持部门,但我

我正在使用Clickatell REST API发送SMSE。我需要发送一些特殊字符(如Ä),这些字符在GSM 03.38标准(以及拉丁语-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
点击电话页面上的十六进制字母,未收到短信

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的转换器,结果还是ClickAtel页面上的十六进制字母没有短信

你知道我还能试什么吗


Clickatell编码是拉丁语-1。因此,从理论上讲,我应该用拉丁语-1发送所有内容,它应该可以工作…

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

好的,有德国网络和我一直使用的带有这些字符的设备get SMSE。所以,我想我在执行中有一些错误。