Написал серверок SOAP (на базе транспорта CGI), который предоставляет
несколько функций.

Клиент может их вызывать, все вроде красиво.

но если в сервере функция вида

use utf8;

package Foo;

sub foo { return 'Вася Пупкин'; }

1;

то клиент вида

use utf8;
my $client = SOAP::Lite->new(proxy => $url, ns => 'Foo');
my $result = $client->call('foo')->result;

получает не utf8 строку.

приходится делать так:

use Encode qw(decode);
my $result = decode utf8 => $client->call('foo')->result;


Но, поскольку сервер возвращает сложные объекты (составные хеши с
массивами), то использовать Encode::decode крайне неудобно и не
хочется.

На сервере выключить использование utf8 не могу, поскольку сервер там
- набор модулей о ~60 мегабайтах суммарно и все они написаны с
use utf8.

в документации на SOAP::Lite что-то я не нашел как можно решать
указанную проблему.
А кто что посоветует?
--
... mpd playing: Accept - Neon Nights

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: [email protected] jabber://[email protected]
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment: signature.asc
Description: Digital signature

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить