Autor | Zpráva | ||
---|---|---|---|
jval Profil * |
#1 · Zasláno: 3. 9. 2014, 20:50:20 · Upravil/a: jval
Zdravím mám, aplikaci, která by měla exportovat na sreality. Když ale v popisu použiji diakritiku, tak mi server vráti chybu:
addAdvert: Parser error:< Invalid character > (code: -503) Zkusil jsem si tedy pomocí serialize vyjet co se odesílá na server a výsledný text byl: VÄ›tÅ¡Ã zdÄ›ný byt o velikosti 3+1, plocha cca 74 m2, v OV, se dvÄ›ma sklepy, se nacházà ve druhém nadzemnÃm podlažà v PodÄ›bradovÄ› ulici - klidná Äást mÄ›sta. Byt je v původnÃm stavu vÄetnÄ› oken a kuchyňské linky. V koupelnÄ› je vybudovaný sprchový kout. V pokojÃch jsou parkety. Celkové poplatky jsou 3.500,- KÄ + elektÅ™ina. Byt je volný - ihned k nastÄ›hovánÃ. pokud jsem zapnul $xmlrpc->request_charset_encoding="UTF-8"; tak už se sice inzerát na serveru uloží, ale s textem: VÄtÅ¡Ã zdÄný byt o velikosti 3+1, plocha cca 74 m2, v OV, se dvÄma sklepy, se nacházà ve druhém nadzemnÃm podlažà v PodÄbradovÄ ulici - klidná Äást mÄsta. Byt je v původnÃm stavu vÄetnÄ oken a kuchyÅské linky. V koupelnÄ je vybudovaný sprchový kout. V pokojÃch jsou parkety. Celkové poplatky jsou 3.500,- KÄ + elektÅina. Byt je volný - ihned k nastÄhovánÃ. Od technické podpory jsem dostal tip na ukázku kódu, kde ovšem tazatel má stejný problém jako já, takže jsem nepochopil jak mi tím chtěli pomoci. Díky za jakékoliv nasměrování. Chybka, v prvním případě to vypadá takto: |
||
Kajman Profil |
#2 · Zasláno: 3. 9. 2014, 22:34:57
Pokud není možné obrátit se na autora aplikace s prosbou o nápravu, zkuste najít problematické místo a zveřejnit zde jeho kód.
|
||
jval Profil * |
#3 · Zasláno: 4. 9. 2014, 13:35:31 · Upravil/a: jval
Třída která komunikuje se serverem je Tato, kterou mám upravenou. Verze xmlrpc knihovny je 2.2.2
$export = $_POST; $export['advert_type'] = (int)$_GET['cid']; $export['seller_id'] = (int)'61823'; $export['advert_rkid'] = (string)$id; $session = new sreality; $session->AddAdvert($export); public function AddAdvert($data) { return ($this->ParameterizedCall("addAdvert", array( php_xmlrpc_encode($data) ))); } private function ParameterizedCall($command, $params) { array_unshift($params, $this->RenewSessionId()); //!CALLBEGIN! $msg = new xmlrpcmsg($command, $params); $response = $this->client->send($msg); // nacteni vysledku if ($response->faultCode()) { //!CALLERR! $this->lastStatus = $response->faultCode(); $this->lastStatusMessage = $response->faultString(); $this->lastOutput = array(); return FALSE; } else { //!CALLEND! $decodedresponse = php_xmlrpc_decode($response->value()); $this->lastStatus = $decodedresponse['status']; $this->lastStatusMessage = $decodedresponse['statusMessage']; $this->lastOutput = $decodedresponse['output']; // pokud je status 200, je to OK return ($this->lastStatus == 200); } } Jinak celá PHP aplikace je moje dílo. |
||
Kajman Profil |
#4 · Zasláno: 4. 9. 2014, 14:30:39
Kde nastane náhrada diakritiky těmi entitami?
|
||
jval Profil * |
#5 · Zasláno: 4. 9. 2014, 20:33:42
Tak postupným exportováním $msg v různých fazích procesu jsem se dopracoval až k proměnné
$GLOBALS['xmlrpc_internalencoding']='ISO-8859-1'; $GLOBALS['xmlrpc_internalencoding']='UTF-8'; Takže kdyby to někdo někdy řešil, tak nestačí na UTF-8 nastavit pouze request_charset_encoding. Děkuji za pomoc. |
||
Časová prodleva: 10 let
|
0