Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.03;
Скачать: CL | DM;

Вниз

xml не отображает кириллицу   Найти похожие ветки 

 
smart   (2011-03-14 13:04) [40]

Вот:
begin
 stringstream:=TStringStream.Create("");
 stringstream2:=TStringStream.Create("");
 
try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
   stringstream.WriteString("<document>");
   stringstream.WriteString("<function name="catalogCreate">");
   stringstream.WriteString("<param name="login">logg</param>");
   stringstream.WriteString("<param name="pass">password</param>");
   stringstream.WriteString("<param name="idEmployer">1</param>");
   stringstream.WriteString("</function>");
   stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
   stringstream.WriteString("</document>");
   IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
   IdHTTP1.Request.ContentLength:=stringstream.Size;
   stringstream.Position:=0;
   stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
   Form1.IdHTTP1.Disconnect;
   Form1.XMLDocument1.LoadFromStream(stringstream2);
   Form1.XMLDocument1.Active:=true;
   Form1.XMLDocument1.SaveToFile("c:\expl.xml");
   finally
   stringstream.Free;
 end;


 
smart   (2011-03-14 13:05) [41]

С поправкой:
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");

try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
  stringstream.WriteString("<document>");
  stringstream.WriteString("<function name="catalogCreate">");
  stringstream.WriteString("<param name="login">logg</param>");
  stringstream.WriteString("<param name="pass">password</param>");
  stringstream.WriteString("<param name="idEmployer">1</param>");
  stringstream.WriteString("<param name="name"><![CDATA[Новый справочик]]></param>");
  stringstream.WriteString("</function>");
  stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
  stringstream.WriteString("</document>");
  IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
  IdHTTP1.Request.ContentLength:=stringstream.Size;
  stringstream.Position:=0;
  stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
  Form1.IdHTTP1.Disconnect;
  Form1.XMLDocument1.LoadFromStream(stringstream2);
  Form1.XMLDocument1.Active:=true;
  Form1.XMLDocument1.SaveToFile("c:\expl.xml");
  finally
  stringstream.Free;
end;


 
Медвежонок Пятачок ©   (2011-03-14 13:15) [42]

Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream);
ShowMessage(stringstream.string);

Вот твои крякозябры.

И как видишь, никакой xml здесь не использовался, и не мешал русскому наименованию папки.


 
Медвежонок ХМЛ ©   (2011-03-14 13:17) [43]

Точнее даже так

ShowMessage(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));


 
smart   (2011-03-14 13:25) [44]

Ошибка. в названиях каталога те же иероглифы...


 
Медвежонок ХМЛ ©   (2011-03-14 13:26) [45]

Все, я пас......
Медицина бессильна


 
Плохиш ©   (2011-03-14 13:52) [46]


> smart   (14.03.11 13:04) [40]

Какое отношение всё это <...> имеет к xml и созданию каталогов?


 
smart   (2011-03-14 13:55) [47]

С помощью этого кода создается каталог. <function name="catalogCreate"> - Создать новый каталог


 
Плохиш ©   (2011-03-14 14:02) [48]

Пора нанимать программиста.


 
brother ©   (2011-03-15 06:07) [49]

smart
ты понял к чему тебе предлагают нанять программиста?


 
smart   (2011-03-15 08:56) [50]


> Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.
> php", stringstream);
> ShowMessage(stringstream.string);
>
> Вот твои крякозябры.
>
> И как видишь, никакой xml здесь не использовался, и не мешал
> русскому наименованию папки.


Проблемы у меня IdHTTP1.Post-кодировкой. Вместо Utf нужно использовать windows-1251, проблема кажется в этом. Как с этим разобраться?


 
sniknik ©   (2011-03-15 09:26) [51]

> Вместо Utf нужно использовать windows-1251
это тебя "осенило", или наконец то прочел ответы в ветке?

на самом деле windows-1251 единственное где нужно это в виндовой функции создания каталога (если не юникодная), а в Post, xml, ... вполне пойдет любая.
лирика.

> Как с этим разобраться?
учиться учится и еще раз учиться! (как расписывал ручку тов.Ленин)

p.s. все больше и больше смахивает на попытку "развода" (ну не бывает настолько ....).


 
smart   (2011-03-15 09:56) [52]

И времени и желания нет и не было "на развод". Просто нужна помощь (((


 
RWolf ©   (2011-03-15 11:06) [53]


> Как с этим разобраться?

отладчиком.
пошаговым выполнением алгоритма, с просмотром всех переменных.


 
smart   (2011-03-15 11:14) [54]

Отладчиком пользовался, все просмотрел. В программе  все нормально, кроме кодировки.
Я думаю что проблема в этой строке, но где именно пока непонятно...
> stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.
> 888.888.888/api/functions.php", stringstream));


 
Dennis I. Komarov ©   (2011-03-15 11:30) [55]


> Я думаю что проблема в этой строке

Да нет, проблема совсем в другом месте...


 
smart   (2011-03-15 11:33) [56]


> Да нет, проблема совсем в другом месте...
>

Где же?


 
brother ©   (2011-03-15 11:38) [57]

у тебя в коде вестимо


 
Медвежонок Пятачок ©   (2011-03-15 11:45) [58]

в [41] ошибок нет, хотя код и еретический.
ошибка дальше, в неприведенном здесь коде.


 
DiamondShark ©   (2011-03-15 11:45) [59]


> smart   (15.03.11 11:33) [56]
> > Да нет, проблема совсем в другом месте...> Где же?

В реализации http://888.888.888.888/api/functions.php


 
Dennis I. Komarov ©   (2011-03-15 11:47) [60]


> brother ©   (15.03.11 11:38) [57]

вообще, я не это имел ввиду...


 
Медвежонок ХМЛ ©   (2011-03-15 11:53) [61]

с полученным из пхп ответом надо работать как с xml, а не юзать стрингстрим вырезая имя каталога позами и копями.
Вот и вся недолга.


 
smart   (2011-03-15 12:11) [62]


> ошибка дальше, в неприведенном здесь коде.

Вот листинг:

function TForm1.catalogCreate(Login: string;Password1: string): string;
var
 stringstream: TStringStream;
 stringstream2: TStringStream;
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");

try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
 stringstream.WriteString("<document>");
 stringstream.WriteString("<function name="catalogCreate">");
 stringstream.WriteString("<param name="login">logg</param>");
 stringstream.WriteString("<param name="pass">password</param>");
 stringstream.WriteString("<param name="idEmployer">1</param>");
 stringstream.WriteString("<param name="name">Новый справочик></param>");
 stringstream.WriteString("</function>");
 stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
 stringstream.WriteString("</document>");
 IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
 IdHTTP1.Request.ContentLength:=stringstream.Size;
 stringstream.Position:=0;
   ShowMessage(Form1.IdHTTP1.Post("http://"888.888.888"/api/functions.php", stringstream));
Form1.IdHTTP1.Disconnect;
 Form1.XMLDocument1.LoadFromStream(stringstream2);
 Form1.XMLDocument1.Active:=true;
 Form1.XMLDocument1.SaveToFile("c:\expl.xml");
 finally
 stringstream.Free;
end;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var
 t: String;
begin
t:=    MD5DigestToStr(MD5String(Password.Text));
IdEmpl1.Text:= catalogCreate(Login.Text,t);
end;


Попробовал так, но результата пока нет...


 
Медвежонок Пятачок ©   (2011-03-15 12:19) [63]

ты запарил уже своей непробиваемостью.

вот пришел к тебе ответ и ты его сохранил.
и в нем имя папки.
Form1.XMLDocument1.SaveToFile("c:\expl.xml");

где ты его читаешь?
имя для создаваемой папки где и как читаешь?


 
smart   (2011-03-15 12:31) [64]

Новый каталог создается в другой - параллельной программе. Там и весь список папок. Только в название нового каталога сейчас там Новый справочник


 
brother ©   (2011-03-15 12:34) [65]

ты точно - НЕ ПРОБИВАЕМЫЙ!!!!


 
brother ©   (2011-03-15 12:36) [66]

> вот пришел к тебе ответ и ты его сохранил.

и скорее всего уже битый...


 
Медвежонок ХМЛ ©   (2011-03-15 12:37) [67]

Новый каталог создается в другой - параллельной программе.

Тогда спи спокойно.
У тебя ошибок нету.


 
brother ©   (2011-03-15 12:40) [68]

> Form1.XMLDocument1.LoadFromStream(stringstream2);
> Form1.XMLDocument1.Active:=true;
> Form1.XMLDocument1.SaveToFile("c:\expl.xml");

где его заполнение/чтение?


 
Медвежонок ХМЛ ©   (2011-03-15 12:48) [69]

это делается в третьей перпендикулярной программе.
разве не понятно?


 
brother ©   (2011-03-15 12:49) [70]

гыгы, я догадывался)


 
Плохиш ©   (2011-03-15 12:52) [71]

Судя по тому, что это блондинко засовывает в TStringStream, в /api/functions.php реализован обычный веб-сервис. Так почему бы не создать нормального клиента с помощью встроенного в делфи мастера?

PS. Долго ещё оно будет бодаться, используя комбинируя компоненты поддерживающие юникод и не поддерживающие :-))


 
Dennis I. Komarov ©   (2011-03-15 12:56) [72]

Да пусть бодается, если brain.sys встал криво...


 
sniknik ©   (2011-03-15 13:18) [73]

> с полученным из пхп ответом надо работать как с xml
х.м. ... у меня бывает от пхп рекордсеты(/json) приходят, или бинарные данные (например иконки/логотип компании), по протоколу/договоренности... (и кстати .php в конце может и не быть признаком обработчик пхп. как "ту сторону" реализуют я часто не знаю, а вот общие части протокола, со вполне определенными ссылками/функциями для всех одинаковы... эээ... в определенных пределах. стремимся к этому, это точно)

я к тому, уточнение, что "работать как с xml" надо только если пришел xml, что в данном случае не очевидно (и вряд ли будет с его "подходом").


 
smart   (2011-03-15 13:26) [74]


> "работать как с xml" надо только если пришел xml, что в
> данном случае не очевидно


Собственно xml:
<?xml version="1.0" encoding="windows-1251" ?>
- <document>
- <info>
 <api_version>1.0</api_version>
 <time>10:11:15</time>
 <execution_time>0.24351406097412</execution_time>
 </info>
- <result value="0">
 <id>120</id>
 <message>120</message>
 </result>
 </document>


 
Anatoly Podgoretsky ©   (2011-03-15 13:28) [75]

> brother  (15.03.2011 12:36:06)  [66]

Не битый, а избитый, но не до конца.


 
app ©   (2011-03-15 13:30) [76]

Надоело, потрепаться можно и в Прочем


 
Медвежонок Пятачок ©   (2011-03-15 13:31) [77]

Мужик, тебе же сказали, покойся с миром, у тебя нет ошибок.
Их допустил программист второй, параллельной программы.
А ты иди в кассу за премией.


 
sniknik ©   (2011-03-15 14:08) [78]

> Собственно xml:
все таки xml... а чего же тогда xml в xml как есть с заголовком вкладывается? оно что должно телепатически правильно "сложить" document-ы?


 
Медвежонок Пятачок ©   (2011-03-15 14:18) [79]

и главное где же в нем хоть намек на имя каталога?


 
Conflict ©   (2011-03-15 14:35) [80]

оффтоп
А на самом деле в заголовок попадает кракозябла из [5] вот какая, а не Новый справочник:
Вид Поступления
CP1251 &#8594; UTF-8
Вид Поступления
/оффтоп



Страницы: 1 2 3 вся ветка

Текущий архив: 2011.07.03;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.014 c
15-1300208090
И. П. Павел
2011-03-15 19:54
2011.07.03
Прогноз погоды на JAVA


2-1300957256
lewka
2011-03-24 12:00
2011.07.03
пауза при выполнении кода программы


15-1300355136
OW
2011-03-17 12:45
2011.07.03
Работник отдела персонала - что за зверь?


15-1300381955
dreamse
2011-03-17 20:12
2011.07.03
Прошу оценить созданный продукт - сетевой экран.


15-1300440240
Luarvic
2011-03-18 12:24
2011.07.03
Игровой чат в mmorpg (реализация)