Delphi 2006, WebService klient in UTF8

Vse kar se tiče programiranja za internet.
Odgovori
zippo
Prispevkov: 264
Pridružen: 14.07.2002 12:11:29

Delphi 2006, WebService klient in UTF8

Odgovor Napisal/-a zippo » 07.06.2010 10:38:45

Pozdrav vsem!

Imam težavo z Delphi-jem pri delu s PHP web servisi. Težava je v tem, da se "kvarijo" šumniki. V samem program so šumniki lepo prikazani, ko pa se pošljejo na WS, jih prikaže "pokvarjene". Menim, da težava izvira v samem programu, ker pošiljam paramtere WS klica, ki so napolnjeni iz samih string-ov. Bi morda moral nekako te string-e pretvorit v UTF8 pred klicem? Če da, kako?

Stupa
Prispevkov: 44
Pridružen: 20.10.2003 21:17:37

Delphi 2006, WebService klient in UTF8

Odgovor Napisal/-a Stupa » 07.06.2010 11:12:01

V UltraEditu lahko convertiraš datoteke. Mogoče je problem v naboru znakov.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

zippo
Prispevkov: 264
Pridružen: 14.07.2002 12:11:29

Delphi 2006, WebService klient in UTF8

Odgovor Napisal/-a zippo » 07.06.2010 11:20:12

Ne gre, sem pa nekaj drugega pravkar našel in implementiral in zgleda na prvi uč, da deluje.

Po izvedem importu odprem PAS datoteko in dodam vrstico

Koda: Izberi vse

      RIO.HTTPWebNode.UseUTF8InHeader := true;
Primer procedure (izsek):

Koda: Izberi vse

...
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as EasyActivationWS);
    if UseWSDL then
    begin
      RIO.HTTPWebNode.UseUTF8InHeader := true;
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
...
Mislim pa, da se da tudi označiti med postopkom uvoza, da gre za UTF8 servis (nisem pa še preveril).

Hvala in tudi upam, da sem komu pomagal :)

Lenny
Prispevkov: 500
Pridružen: 18.12.2003 09:55:16

Delphi 2006, WebService klient in UTF8

Odgovor Napisal/-a Lenny » 07.06.2010 21:23:48

Uporabi UTF8Encode v obratno smer Utf8Decode. Pa potem konventiraš glede na potrebe kje kaj rabiš. :)

Odgovori