Clickatell SMS со специальными символами GSM через REST API
Я использую Clickatell REST API для отправки SMS. Мне нужно отправить некоторые специальные символы (например, Ä), которые доступны в стандарте GSM 03.38 (а также в латинице-1). Итак, я не хочу использовать Unicode. Однако независимо от того, как я отправляю сообщение, я не получаю то, что хочу. Либо сообщение правильно сохраняется в Clickatell, но на устройстве появляются странные символы, либо я кодирую сообщение, а затем получаю шестнадцатеричную букву в Clickatell и вообще ничего на устройстве. В FAQ есть решение для HTTP API, но оно не помогло мне для REST API. Я связался со службой поддержки, но уже 3 дня жду ответа. У кого-нибудь здесь есть опыт работы с API?
Вот некоторые из моих неудачных попыток:
Данные правильно отображаются на странице Clickatell, но не в SMS
string data = clickatellEncoding.GetString(memoryStream.ToArray());
StringContent stringContent = new StringContent(data, clickatellEncoding,
jsonContentType
Шестнадцатеричное письмо на странице Clickatell, SMS не получено
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 снова были шестнадцатеричные буквы без SMS.
Есть идеи, что еще я мог попробовать?
Кодировка Clickatell - латиница-1. Итак, теоретически я должен отправить все на латинице-1, и это должно работать...
1 ответ
Текущий REST API Clickatell ожидает набор символов Windows-1252. Если вы придерживаетесь этого, и персонажи по-прежнему не доставляются, команде поддержки потребуется выяснить маршруты доставки в сети, в которые вы отправляете.