Проблема с кодировкой ucs-2 для отправки SMS сообщения

sheva

Новичок
Проблема с кодировкой ucs-2 для отправки SMS сообщения

Мучаюсь, никак не решу проблему. Необходимо создать мультиязычный смс сервис для отправки сообщений. Сообщения отправляются http запросом вида
PHP:
http://216.25.78.128/bulksms/bulksend.go?username=user@originator=mycompany&phone=331234567789&msgtext=Hello
Для латиницы все понятно. А вот для других языков необходимо использовать charset=6 6=Unicode Text in UCS2 format without any char convertion.

Долго мучал функцию iconv("cp1251", "UCS-2", $text), пока не нашел специальную функцию cp1251_2ucs2 для этого случая. Проблема с русским текстом решилась. Получилось
PHP:
Добрый день=0414043E04310440043E0435002 004340435043D044C
В таком формате и должно быть. Но как быть с остальными языками, типа иврита или арабского. Таких функций я не встречал.

Может кто подскажет? Желательно из UTF-8 в UCS-2 перевести. Есть функция на php.net - utf8toucs2 Но она не корректно работает. На выходе - совсем другая строка получается.
 

dimagolov

Новичок
sheva, у тебя 2 задачи:
1. конвертнуть из utf-8 в usc-2, тут банального iconv должно быть достаточно
2. закодировать полученную строку в url, тут unpack может помочь
 

sheva

Новичок
Автор оригинала: dimagolov
sheva, у тебя 2 задачи:
1. конвертнуть из utf-8 в usc-2, тут банального iconv должно быть достаточно
2. закодировать полученную строку в url, тут unpack может помочь
PHP:
$text='Добрый день'; 
$text=iconv("utf-8", "UCS-2", $text); 
unpack('H',$text);
В итоге получил строку >1@K9� 45=L

-~{}~ 24.02.10 17:52:

Автор оригинала: SiMM
> unpack может помочь
[m]bin2hex[/m] попроще будет.
bin2hex - то что надо, спасибо!!!!
 

Wicked

Новичок
Но как быть с остальными языками, типа иврита или арабского. Таких функций я не встречал.
начнём с того, как ты собрался хранить иврит или арабский в cp1251 :)
 

sheva

Новичок
у меня все в Utf-8, я просто нашел частное решение для cp1251. Тема закрыта, bin2hex помог.
 
Сверху