Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SOAP::Lite - не могу передать русский текст 
:(
    Опции темы
Lvovich2011
  Дата 1.11.2011, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2011

Репутация: нет
Всего: нет



Доброго времени суток!
Формирую SOAP-запрос, в котором есть тэг с русским текстом. SOAP самостоятельно русские буквы конвертирует не пойми во что:
Задаю: ШРН-Э-18.650.1
Отправляю, а сервер получает: ØÐÍ-Гќ-18.650.1

Вот код Perl
Код

$soap = SOAP::Lite -> proxy($my_proxy) -> on_action( sub { $my_action } );
$method = SOAP::Data->name('web:My_method') -> attr({'xmlns:web' => $my_nspace});
##параметры
$aaa="ШРН-Э-18.650.1";
@pars = (
    SOAP::Data->name('web:Login')->value($my_login),
    SOAP::Data->name('web:password')->value($my_password),
    SOAP::Data->name('web:Articul')->value($aaa)->type("string")
);
$som = $soap->call($method => @pars);


А вот, что получает сервер (это только фрагмент):

Код

<web:Articul xsi:type="xsd:string">ØÐÍ-Ý-18.650.1</web:Articul>


Помогите разобраться. где происходит перекодировка исходного параметра?
Что нужно сделать, чтобы русский текст передавался серверу без искажений?

Если нужны дополнительные данные по теме, то отвечу и предоставлю.

Это сообщение отредактировал(а) Lvovich2011 - 1.11.2011, 13:37
PM MAIL   Вверх
vadiml
Дата 1.11.2011, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 27.7.2007

Репутация: нет
Всего: 7



Отправляйте и принимайте в utf8, возможно даже со сброшенным флагом utf8
PM MAIL Jabber   Вверх
Lvovich2011
Дата 2.11.2011, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2011

Репутация: нет
Всего: нет



vadiml, спасибо за совет - помог решить проблему.
Вот такой вариант работает:

Код

$soap = SOAP::Lite -> proxy($my_proxy) -> on_action( sub { $my_action } );
$method = SOAP::Data->name('web:My_method') -> attr({'xmlns:web' => $my_nspace});
##параметры
$aaa="ШРН-Э-18.650.1";
#################### новое!
Encode::from_to($aaa, 'windows-1251', 'utf-8');
Encode::_utf8_on($aaa);
####################
@pars = (
    SOAP::Data->name('web:Login')->value($my_login)->type("string"),   ##новое!
    SOAP::Data->name('web:password')->value($my_password),
    SOAP::Data->name('web:Articul')->value($aaa)->type("string")
);
$som = $soap->call($method => @pars);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.