CftClub.ru
Клуб специалистов ЦФТ-Банк

Soap client, кодировка UTF-8

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
e.kha
Участник со стажем


Вступление в Клуб: 26.04.2012
СообщениеСр Окт 02, 2013 06:25   Soap client, кодировка UTF-8 Ответить с цитатой
Полезность: Нет оценки
Добрый день!
Пишу клиента под soap веб сервис . Проблема в след. - если пытаюсь отправить сообщение на кирилице, то веб сервис выдает ошибку, на английском все уходит. Сообщение в перевожу в UTF8 c помощью
convert. Конвертирует вроде корректно, где искать проблему не понимаю....
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеСр Окт 02, 2013 08:07   Re: Soap client, кодировка UTF-8 Ответить с цитатой
Полезность: Нет оценки
e.kha пишет:
Добрый день!
Пишу клиента под soap веб сервис . Проблема в след. - если пытаюсь отправить сообщение на кирилице, то веб сервис выдает ошибку, на английском все уходит. Сообщение в перевожу в UTF8 c помощью
convert. Конвертирует вроде корректно, где искать проблему не понимаю....


Попробуй указать кодировку в заголовке XML.
Код:
<?xml version="1.0" encoding="UTF-8"?>
e.kha
Участник со стажем


Вступление в Клуб: 26.04.2012
СообщениеСр Окт 02, 2013 08:42    Ответить с цитатой
Полезность: Нет оценки
а как можно воспользоваться в ибсо функцией lengthb - длина в байтах кроме как pl sql вставкой?
e.kha
Участник со стажем


Вступление в Клуб: 26.04.2012
СообщениеСр Окт 02, 2013 09:02    Ответить с цитатой
Полезность: Нет оценки
Фу, вроде разобрался.

Сори за сумбурное оформление темы - используется utl_http.

Код:
utl_http.write_text(http_req, request_env)
сама конвертит из кодировки оракла в кодировку установленную
Код:
utl_http.set_body_charset('UTF-8');


поэтому предварительно конвертировать пакет
Код:
convert(request_env, 'UTF8')

не надо, иначе получается двойная конвертация.

единственное не понял как воспользоваться функцией lengthb
без пл скл вставки
Код:
-- begin pl/sql
len := lengthb(convert(request_env, 'UTF8'));
-- end pl/sql
utl_http.set_header(http_req, 'Content-Length', len);

так как пишут, что пользоваться функцией length не корректно, так как нужна длина пакета в байтах в искомой кодировке.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru