Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой в SOAP, help! 
V
    Опции темы
FatherFrost
Дата 12.4.2006, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



И так собственно сабж. Есть SOAP-сервер написанный на Делфях и размещенный под Апачем. Если пользоваться клиентом, написанным на Делфи, то все ОК... Но как только подклюяаюсь к веб-сервису из c#-приложения, то получаю нечитабельные строки, т.е. русские символы заменяются ?????. Как это можно побороть?


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 12.4.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Проблема в том, что сервис тебе отдает юникод, который ты конвертишь согласно текущей локали.
Вообще-то это вопрос по C#, а не к дельфи.
На WinApi нужно просто при старте программы дать строчку:
Код
SetThreadLocale(1049);

PM MAIL   Вверх
FatherFrost
Дата 12.4.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Snowy, т.е.таким образом я установлю для потока клиента использование юникода?


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 12.4.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Нет. Таким образом ты заставишь свою программу думать, что она работает под русской виндой на русском языке.
И соответственно все юникод перекодироки будут работать с поправкой на русский язык.
PM MAIL   Вверх
FatherFrost
Дата 12.4.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Snowy, не подскажешь как это сделать на Делфи?


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 12.4.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



PM MAIL   Вверх
FatherFrost
Дата 12.4.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



К сожалению это не помогло, наверно все Апач портит...


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 12.4.2006, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Если бы он портил, то и в Delphi была бы кривая кодировка.
Проверь: кокой язык родной у винды на сервере и какой на клиенте.
PM MAIL   Вверх
FatherFrost
Дата 12.4.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Так все стоит пока на одной машине smile))


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 12.4.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Тогда действительно странно.
Значит нужно смотреть маппером или снифером, что идет от сервера клиенту.
Ну или из свое программы скинуть в лог файл весь траффик и посмотреть его глазами.
Если скинешь - выложи здесь в прямом и HEX виде.
Я посмотрю глазками и скажу, что с этим делать.
PM MAIL   Вверх
FatherFrost
Дата 12.4.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Ок. Посмотрю завтра... Может еще сам чего накопаю


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
FatherFrost
Дата 13.4.2006, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Чето начал разбираться и совсем запутался... Не подскажешь нормальный снифер.


--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Snowy
Дата 13.4.2006, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



PM MAIL   Вверх
RA
Дата 13.4.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Знакомая проблема, подобное наблюдал при написании приложения клиент сервер.
В моём случаи передоваемые клиенту списки директорий и файлов содержащие русские символы передовались в виде "???????"

Проблему не решил, списал её на косяк ОС, тот самый когда при копировании русского текста вставляется "??????"

Проэкт сдал, деньги получил. smile
PM   Вверх
FatherFrost
Дата 13.4.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почетный Мороз
**


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

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



Вот пример тела одного пакета:
Код

0000  00 0c 6e 4b 40 3b 00 0a  48 18 46 a7 08 00 45 00   ..nK@;.. H.F...E.
0010  05 dc 76 f2 40 00 80 06  98 b5 c0 a8 32 03 c0 a8   ..v.@... ....2...
0020  32 20 00 50 04 fd a6 e4  3c 86 ab 1e c1 30 50 10   2 .P.... <....0P.
0030  43 a2 bd 06 00 00 65 71  75 65 73 74 22 3e 0d 0a   C.....eq uest">..
0040  20 20 20 20 3c 70 61 72  74 20 6e 61 6d 65 3d 22       <par t name="
0050  41 4c 73 68 65 74 22 20  74 79 70 65 3d 22 78 73   ALshet"  type="xs
0060  3a 73 74 72 69 6e 67 22  2f 3e 0d 0a 20 20 20 20   :string" />..    
0070  3c 70 61 72 74 20 6e 61  6d 65 3d 22 41 42 61 6c   <part na me="ABal
0080  61 6e 63 65 5f 6b 6f 64  22 20 74 79 70 65 3d 22   ance_kod " type="
0090  78 73 3a 69 6e 74 22 2f  3e 0d 0a 20 20 20 20 3c   xs:int"/ >..    <
00a0  70 61 72 74 20 6e 61 6d  65 3d 22 41 53 75 6d 6d   part nam e="ASumm
00b0  61 22 20 74 79 70 65 3d  22 78 73 3a 64 6f 75 62   a" type= "xs:doub
00c0  6c 65 22 2f 3e 0d 0a 20  20 3c 2f 6d 65 73 73 61   le"/>..   </messa
00d0  67 65 3e 0d 0a 20 20 3c  6d 65 73 73 61 67 65 20   ge>..  < message 
00e0  6e 61 6d 65 3d 22 41 64  64 50 61 79 53 75 6d 6d   name="Ad dPaySumm
00f0  61 34 52 65 73 70 6f 6e  73 65 22 3e 0d 0a 20 20   a4Respon se">..  
0100  20 20 3c 70 61 72 74 20  6e 61 6d 65 3d 22 72 65     <part  name="re
0110  74 75 72 6e 22 20 74 79  70 65 3d 22 78 73 3a 62   turn" ty pe="xs:b
0120  6f 6f 6c 65 61 6e 22 2f  3e 0d 0a 20 20 3c 2f 6d   oolean"/ >..  </m
0130  65 73 73 61 67 65 3e 0d  0a 20 20 3c 70 6f 72 74   essage>. .  <port
0140  54 79 70 65 20 6e 61 6d  65 3d 22 49 48 54 54 50   Type nam e="IHTTP
0150  41 62 6f 6e 65 6e 74 22  3e 0d 0a 20 20 20 20 3c   Abonent" >..    <
0160  6f 70 65 72 61 74 69 6f  6e 20 6e 61 6d 65 3d 22   operatio n name="
0170  43 68 65 63 6b 4c 73 68  65 74 45 78 69 73 74 73   CheckLsh etExists
0180  22 3e 0d 0a 20 20 20 20  20 20 3c 69 6e 70 75 74   ">..       <input
0190  20 6d 65 73 73 61 67 65  3d 22 74 6e 73 3a 43 68    message ="tns:Ch
01a0  65 63 6b 4c 73 68 65 74  45 78 69 73 74 73 30 52   eckLshet Exists0R
01b0  65 71 75 65 73 74 22 2f  3e 0d 0a 20 20 20 20 20   equest"/ >..     
01c0  20 3c 6f 75 74 70 75 74  20 6d 65 73 73 61 67 65    <output  message
01d0  3d 22 74 6e 73 3a 43 68  65 63 6b 4c 73 68 65 74   ="tns:Ch eckLshet
01e0  45 78 69 73 74 73 30 52  65 73 70 6f 6e 73 65 22   Exists0R esponse"
01f0  2f 3e 0d 0a 20 20 20 20  3c 2f 6f 70 65 72 61 74   />..     </operat
0200  69 6f 6e 3e 0d 0a 20 20  20 20 3c 6f 70 65 72 61   ion>..     <opera
0210  74 69 6f 6e 20 6e 61 6d  65 3d 22 47 65 74 4c 73   tion nam e="GetLs
0220  68 65 74 43 75 72 72 65  6e 74 44 6f 6c 67 22 3e   hetCurre ntDolg">
0230  0d 0a 20 20 20 20 20 20  3c 69 6e 70 75 74 20 6d   ..       <input m
0240  65 73 73 61 67 65 3d 22  74 6e 73 3a 47 65 74 4c   essage=" tns:GetL
0250  73 68 65 74 43 75 72 72  65 6e 74 44 6f 6c 67 31   shetCurr entDolg1
0260  52 65 71 75 65 73 74 22  2f 3e 0d 0a 20 20 20 20   Request" />..    
0270  20 20 3c 6f 75 74 70 75  74 20 6d 65 73 73 61 67     <outpu t messag
0280  65 3d 22 74 6e 73 3a 47  65 74 4c 73 68 65 74 43   e="tns:G etLshetC
0290  75 72 72 65 6e 74 44 6f  6c 67 31 52 65 73 70 6f   urrentDo lg1Respo
02a0  6e 73 65 22 2f 3e 0d 0a  20 20 20 20 3c 2f 6f 70   nse"/>..     </op
02b0  65 72 61 74 69 6f 6e 3e  0d 0a 20 20 20 20 3c 6f   eration> ..    <o
02c0  70 65 72 61 74 69 6f 6e  20 6e 61 6d 65 3d 22 47   peration  name="G
02d0  65 74 4c 73 68 65 74 46  49 4f 22 3e 0d 0a 20 20   etLshetF IO">..  
02e0  20 20 20 20 3c 69 6e 70  75 74 20 6d 65 73 73 61       <inp ut messa
02f0  67 65 3d 22 74 6e 73 3a  47 65 74 4c 73 68 65 74   ge="tns: GetLshet
0300  46 49 4f 32 52 65 71 75  65 73 74 22 2f 3e 0d 0a   FIO2Requ est"/>..
0310  20 20 20 20 20 20 3c 6f  75 74 70 75 74 20 6d 65         <o utput me
0320  73 73 61 67 65 3d 22 74  6e 73 3a 47 65 74 4c 73   ssage="t ns:GetLs
0330  68 65 74 46 49 4f 32 52  65 73 70 6f 6e 73 65 22   hetFIO2R esponse"
0340  2f 3e 0d 0a 20 20 20 20  3c 2f 6f 70 65 72 61 74   />..     </operat
0350  69 6f 6e 3e 0d 0a 20 20  20 20 3c 6f 70 65 72 61   ion>..     <opera
0360  74 69 6f 6e 20 6e 61 6d  65 3d 22 47 65 74 4c 73   tion nam e="GetLs
0370  68 65 74 41 64 64 72 65  73 73 22 3e 0d 0a 20 20   hetAddre ss">..  
0380  20 20 20 20 3c 69 6e 70  75 74 20 6d 65 73 73 61       <inp ut messa
0390  67 65 3d 22 74 6e 73 3a  47 65 74 4c 73 68 65 74   ge="tns: GetLshet
03a0  41 64 64 72 65 73 73 33  52 65 71 75 65 73 74 22   Address3 Request"
03b0  2f 3e 0d 0a 20 20 20 20  20 20 3c 6f 75 74 70 75   />..       <outpu
03c0  74 20 6d 65 73 73 61 67  65 3d 22 74 6e 73 3a 47   t messag e="tns:G
03d0  65 74 4c 73 68 65 74 41  64 64 72 65 73 73 33 52   etLshetA ddress3R
03e0  65 73 70 6f 6e 73 65 22  2f 3e 0d 0a 20 20 20 20   esponse" />..    
03f0  3c 2f 6f 70 65 72 61 74  69 6f 6e 3e 0d 0a 20 20   </operat ion>..  
0400  20 20 3c 6f 70 65 72 61  74 69 6f 6e 20 6e 61 6d     <opera tion nam
0410  65 3d 22 41 64 64 50 61  79 53 75 6d 6d 61 22 3e   e="AddPa ySumma">
0420  0d 0a 20 20 20 20 20 20  3c 69 6e 70 75 74 20 6d   ..       <input m
0430  65 73 73 61 67 65 3d 22  74 6e 73 3a 41 64 64 50   essage=" tns:AddP
0440  61 79 53 75 6d 6d 61 34  52 65 71 75 65 73 74 22   aySumma4 Request"
0450  2f 3e 0d 0a 20 20 20 20  20 20 3c 6f 75 74 70 75   />..       <outpu
0460  74 20 6d 65 73 73 61 67  65 3d 22 74 6e 73 3a 41   t messag e="tns:A
0470  64 64 50 61 79 53 75 6d  6d 61 34 52 65 73 70 6f   ddPaySum ma4Respo
0480  6e 73 65 22 2f 3e 0d 0a  20 20 20 20 3c 2f 6f 70   nse"/>..     </op
0490  65 72 61 74 69 6f 6e 3e  0d 0a 20 20 3c 2f 70 6f   eration> ..  </po
04a0  72 74 54 79 70 65 3e 0d  0a 20 20 3c 62 69 6e 64   rtType>. .  <bind
04b0  69 6e 67 20 6e 61 6d 65  3d 22 49 48 54 54 50 41   ing name ="IHTTPA
04c0  62 6f 6e 65 6e 74 62 69  6e 64 69 6e 67 22 20 74   bonentbi nding" t
04d0  79 70 65 3d 22 74 6e 73  3a 49 48 54 54 50 41 62   ype="tns :IHTTPAb
04e0  6f 6e 65 6e 74 22 3e 0d  0a 20 20 20 20 3c 73 6f   onent">. .    <so
04f0  61 70 3a 62 69 6e 64 69  6e 67 20 73 74 79 6c 65   ap:bindi ng style
0500  3d 22 72 70 63 22 20 74  72 61 6e 73 70 6f 72 74   ="rpc" t ransport
0510  3d 22 68 74 74 70 3a 2f  2f 73 63 68 65 6d 61 73   ="http:/ /schemas
0520  2e 78 6d 6c 73 6f 61 70  2e 6f 72 67 2f 73 6f 61   .xmlsoap .org/soa
0530  70 2f 68 74 74 70 22 2f  3e 0d 0a 20 20 20 20 3c   p/http"/ >..    <
0540  6f 70 65 72 61 74 69 6f  6e 20 6e 61 6d 65 3d 22   operatio n name="
0550  43 68 65 63 6b 4c 73 68  65 74 45 78 69 73 74 73   CheckLsh etExists
0560  22 3e 0d 0a 20 20 20 20  20 20 3c 73 6f 61 70 3a   ">..       <soap:
0570  6f 70 65 72 61 74 69 6f  6e 20 73 6f 61 70 41 63   operatio n soapAc
0580  74 69 6f 6e 3d 22 75 72  6e 3a 48 54 54 50 41 62   tion="ur n:HTTPAb
0590  6f 6e 65 6e 74 53 65 72  76 69 63 65 49 6e 74 66   onentSer viceIntf
05a0  2d 49 48 54 54 50 41 62  6f 6e 65 6e 74 23 43 68   -IHTTPAb onent#Ch
05b0  65 63 6b 4c 73 68 65 74  45 78 69 73 74 73 22 20   eckLshet Exists" 
05c0  73 74 79 6c 65 3d 22 72  70 63 22 2f 3e 0d 0a 20   style="r pc"/>.. 
05d0  20 20 20 20 20 3c 69 6e  70 75 74 20 6d 65 73 73        <in put mess
05e0  61 67 65 3d 22 74 6e 73  3a 43                     age="tns :C  



--------------------
Задаю много глупых вопросов....
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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