Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> kSOAP+Web-сервис на PHP. Проблема с кодировкой, Некорректно передаются русские слова 
:(
    Опции темы
Shushan
Дата 18.4.2011, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. Возникла необходимость в получении данных для мидлета из Web-сервиса. 
Для решения задачи воспользовался библиотекой kSOAP. Web-сервис пишу на PHP 5.
Удалённый вызов осуществляется нормально и данные возвращаются корректно. 
Проблема возникает при передаче русских слов. Когда передаю от сервера данные кириллицей, то получаю знаки вопроса: ????????

Код  Web-сервиса на PHP:
Код

<?php

function login($email, $pass)
    {
    $symbol="Привет";
    return $symbol;
    }

$server = new SoapServer(null, array('uri' => "urn:PhpProject3", "encoding" => "UTF-8"));
$server->soap_defencoding = 'utf-8';
$server->addFunction("login");
$server->handle();

?>



Метод клиента для получения информации от Web-сервиса на J2ME с применением библиотек kSOAP:
Код

    public String spellCheck(String email, String password) throws Exception
      {
        // Подготовка запроса SOAP сообщения в памяти объекта
        SoapObject method = new SoapObject("urn:PhpProject3", "login");
        method.addProperty("email", email);
        method.addProperty("password", password);

        // Включить поддержку нетипизированных элементов
        SoapEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
        envelope.encodingStyle = SoapSerializationEnvelope.ENC;
        // Установка объекта ответа
        envelope.bodyOut = method;
        // Подготовка SOAP RPC вызова объекта.
        HttpTransport rpc = new HttpTransport("http://localhost/PhpProject3/index.php");
        rpc.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        // Вызов удалённого метода (SoapAction необязателен)
        rpc.call(null, envelope);
        // Получить размещение возвращаемого значения
        SoapObject ret = (SoapObject) envelope.bodyIn;
        String spellSugg = ret.getProperty(0).toString();
        return spellSugg;
      }


И ещё один вопрос: 
Если у меня данные в формате XML и я передаю их с применением протокола SOAP, то получается, что у меня XML в XMLе как-то странно... Нормально ли так передавать информацию? Немного запутался в этом вопросе.

PM MAIL   Вверх
ivanovpv
Дата 18.4.2011, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

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



В J2ME обычно используется кодировка не UTF-8, а ISO 8859-1 - так что надо перекодировать полученные из вебсервиса данные не в UTF-8, а в ISO 8859-1 или с сервера сразу посылать в этой кодировке.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




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


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

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