![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
И так собственно сабж. Есть SOAP-сервер написанный на Делфях и размещенный под Апачем. Если пользоваться клиентом, написанным на Делфи, то все ОК... Но как только подклюяаюсь к веб-сервису из c#-приложения, то получаю нечитабельные строки, т.е. русские символы заменяются ?????. Как это можно побороть?
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Проблема в том, что сервис тебе отдает юникод, который ты конвертишь согласно текущей локали.
Вообще-то это вопрос по C#, а не к дельфи. На WinApi нужно просто при старте программы дать строчку:
|
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Snowy, т.е.таким образом я установлю для потока клиента использование юникода?
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Нет. Таким образом ты заставишь свою программу думать, что она работает под русской виндой на русском языке.
И соответственно все юникод перекодироки будут работать с поправкой на русский язык. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Snowy, не подскажешь как это сделать на Делфи?
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
К сожалению это не помогло, наверно все Апач портит...
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Если бы он портил, то и в Delphi была бы кривая кодировка.
Проверь: кокой язык родной у винды на сервере и какой на клиенте. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Так все стоит пока на одной машине
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Тогда действительно странно.
Значит нужно смотреть маппером или снифером, что идет от сервера клиенту. Ну или из свое программы скинуть в лог файл весь траффик и посмотреть его глазами. Если скинешь - выложи здесь в прямом и HEX виде. Я посмотрю глазками и скажу, что с этим делать. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Ок. Посмотрю завтра... Может еще сам чего накопаю
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Чето начал разбираться и совсем запутался... Не подскажешь нормальный снифер.
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Подскажу маппер: http://forum.vingrad.ru/index.php?showtopi...mp;#entry689298
|
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Знакомая проблема, подобное наблюдал при написании приложения клиент сервер.
В моём случаи передоваемые клиенту списки директорий и файлов содержащие русские символы передовались в виде "???????" Проблему не решил, списал её на косяк ОС, тот самый когда при копировании русского текста вставляется "??????" Проэкт сдал, деньги получил. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Вот пример тела одного пакета:
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
не то. Здесь нет текста.
|
|||
|
||||
| FatherFrost |
|
||||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Вот идет ответный пакет от сервера сразу после запроса:
Добавлено @ 14:42 Сорри, то служебный пакет. Вот ответ сервера:
-------------------- Задаю много глупых вопросов.... |
||||
|
|||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Snowy, В строках 45 - 47. Могет есть какие-нить идеи?
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Хе. Да это банальный UTF-8.
И получаем "ул.ЩОРСА УЛИЦА д.5 кв.99" Что и логично - UTF-8 родной для xml. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Понятно, тогда скорее нуно шарп мучать... Огромное спасибо за помощь.
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Возник вопрос, а можно заставить респонся отсылать в UTF 16
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Да. Можно.
Для этого нужно у TXMLDocument установить Encoding := 'UTF-16'; |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Snowy, ну это для XML, а для веб сервиса как быть???
-------------------- Задаю много глупых вопросов.... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А это уже зависит от реализации веб-сервиса.
А он скорее всего также юзает этот же XML контрол. Если нет, то нужно ковыряться в нем, чтобы узнать как и чего он кодирует. |
|||
|
||||
| FatherFrost |
|
|||
|
Почетный Мороз ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 27.4.2005 Где: Крайний север Репутация: 1 Всего: 6 |
Я уже нашел. Для
THTTPSoapDispatcher и THTTPSoapPascalInvoker у Converter'a есть свойство Encoding. Его нужно было установить UTF-16, т.к. в C# строки в этой кодировке... У меня кодировка указана не была, поэтому ответ шел без указания кодировки (вот она главная причина нестыковки). -------------------- Задаю много глупых вопросов.... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |