Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кракозябры при передаче xml сервису / 3 сообщений из 3, страница 1 из 1
15.07.2016, 18:41:44
    #39274940
arCHi_1887
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кракозябры при передаче xml сервису
Есть java-сервис, принимающий на вход xml.

XML из оракла отправляю следующим образом:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare
  soap_text varchar2(32767);
  http_req  utl_http.req;
  http_resp utl_http.resp;
  env CLOB;
begin
  soap_text:=convert('<soapenv:Envelope xmlns:soapenv=<...></soapenv:Envelope>', 'UTF8');
  url:='http://<myUrl.com>';
  http_req:= utl_http.begin_request(url, 'POST','HTTP/1.1');
  utl_http.set_body_charset(http_req, 'utf-8');
  utl_http.set_header(http_req, 'Content-Length', LENGTHB(soap_text));
  utl_http.write_text(http_req, soap_text);
  http_resp := utl_http.get_response(http_req);
  utl_http.read_text(http_resp, env);
  utl_http.end_response(http_resp);
end;



В итоге русские буквы в значениях тегов сервис распознает как кракозябры. Как исправить?
...
Рейтинг: 0 / 0
15.07.2016, 18:42:36
    #39274942
arCHi_1887
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кракозябры при передаче xml сервису
Если что,
NLS_CHARACTERSET = CL8MSWIN1251
...
Рейтинг: 0 / 0
16.07.2016, 02:24:41
    #39275037
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кракозябры при передаче xml сервису
arCHi_1887
Код: plsql
1.
2.
3.
4.
5.
...
  soap_text:=convert('<soapenv:Envelope xmlns:soapenv=<...></soapenv:Envelope>', 'UTF8');
...
  utl_http.write_text(http_req, soap_text);
...


Database PL/SQL Packages and Types Reference
UTL_HTTP WRITE_TEXT Procedure
This procedure writes some text data in the HTTP request body. As soon as some data is sent as the HTTP request body, the HTTP request headers section is completed. Text data is automatically converted from the database character set to the request body character set .
...
When either one of the two character sets is a multibyte character set, the precise byte-length of the request body in the request body character set cannot be known beforehand. In this case, you can perform the character set conversion explicitly, determine the byte-length of the results, send the Content-Length header, and the results using the WRITE_RAW procedure to avoid the automatic character set conversion Я так понимаю, либо трусы одень, либо крестик сними...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кракозябры при передаче xml сервису / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]