Как кодировать французские / испанские символы, чтобы использовать HTTP-API Clickatell? - PullRequest
5 голосов
/ 29 ноября 2010

Я думаю, что некоторые из вас имеют опыт работы с Clickatell. Моя проблема: когда я отправляю сообщение через их http api, используя французские или испанские символы (кодирование URL), они не отображаются (символы) на телефоне.

Я использую этот -guide-: http: // support.clickatell.com /faq.php?mode=view_entry&kbid=121&kbcat=26

Я уже тестировал его на нескольких телефонах, и все они показывают одно и то же: "va! Mon l ve mi ni a?" Это должно быть "ça va! Mon élève mi niña?" (или что-то похожее)

К сожалению, их поддержка не совсем конкретна (для меня), и я немного растерялся, вот что я получил:

Пожалуйста, смотрите: http://www.dreamfabric.com/sms/default_alphabet.html

После этого, пожалуйста, URL Кодируйте ваш текст = параметр в соответствии с вышеуказанными стандартами, чтобы ваши французские символы правильно отображались на вашем телефоне.

Ответы [ 4 ]

7 голосов
/ 01 декабря 2010

В основном с помощью SMS у вас есть два варианта отправки текста: либо используйте «алфавит по умолчанию», указанный в GSM 03.38 , либо используйте Unicode.

Алфавит по умолчанию - это обычный способотправлять SMS в большинстве западных стран, так как они предлагают приемлемый набор языков для этого региона.Это 7-битная кодировка, поэтому вы можете поместить до 160 символов в 140 доступных байтов.«До», потому что эта кодировка использует несколько таблиц.Вы можете получить доступ к символам в таблицах расширений, поставив перед ними префикс escape (s) (0x1B).Таким образом, 7-битное кодирование экономит место, если вы в основном используете первую таблицу.

Другой вариант - использовать Unicode (в частности, UCS-2).Очевидно, это дает вам гораздо более широкий набор символов, но за счет места: используя два байта для каждого символа, эта кодировка оставляет вам ограничение в 70 символов.

Я не могу говорить за Clickatell, поскольку я никогда не использовалих, но некоторые провайдеры предлагают вам абстрактный API, который позволяет вам использовать популярные кодировки, такие как ISO-8859-1 ("latin-1").В какой-то момент это все еще перекодируется в 7-битный алфавит по умолчанию.Могут быть применены даже некоторые правила отображения, например, используйте «è» вместо «é», потому что первое выглядит почти так же и находится в алфавите по умолчанию.Конечно, если вы хотите иметь полный контроль над контентом, вам нужно использовать API, который позволяет передавать текст, закодированный в алфавите GSM по умолчанию.

2 голосов
/ 05 ноября 2013

Вот какое-то решение. Все символы с '^' будут заменены обычной буквой:

$message = 'éàçùêâôûîï';
$message = urlencode(utf8_decode($message));

Полученное SMS будет выглядеть так:

éàcùeaouii
0 голосов
/ 07 февраля 2017

На самом деле я использую только $ message = utf8_encode ($ cvPath); // $ cvpath, что URL. это может работать успешно. Спасибо за вашу идею обмена. ^^

0 голосов
/ 29 ноября 2010

Я бы предложил использовать кодировку Latin 1 , возможно, не 100%, но это самое близкое, что вы получите.http://www.w3schools.com/PHP/func_string_htmlentities.asp

...