Einzelnen Beitrag anzeigen

kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#1

Problem mit Soap und Umlauten...

  Alt 14. Nov 2006, 12:09
Hallo... ich habe ein riesiges Problem...
In meinem Soap Client benutze ich TSoapConnection, um eine Soap verbindung mit einem PHP Soap Server herzustellen.
Soweit so gut.

Dann benutze ich z.B folgende funktion, die mir z.B Name, Nachname und Username von den freunden des users mit der übergebenden sessionID zurückliefert (funktionierte auch super)

buddys:=(SoapConnection1.GetSOAPServer as IDataMod).getBuddyList(sessionID,'all'); deklariert in meiner Invoke Data Mod pas ist die function übrigens so:

function getBuddyList(sessionID:string;status:string): WideString; stdcall; So hatte auch immer super geklappt und aus gereicht! jetzt hatte ich aber letztens immer folgende exception bei dem funktions aufruf, und die variable "buddys" war leer:

Code:
[14.11.2006 -- 12:58:46]:Im Textinhalt wurde ein ungültiges Zeichen gefunden.

Linie: 2
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http:
Jetzt habe ich nach echt langem suchen rausbekommen, dass ich bei einem User im Nachnamen ein "ß" zurückbekomme, und als ich es mit phpmyadmin in der Datenbank auf "ss" geändert habe, kam auch die exception nicht mehr, und ich hatte meine buddys wieder usw...

Jetzt brauche ich unbedingt hilfe, denn der soap aufruf in dieser art und weise mache ich öfter, und wenn der immer abkackt, wenn ich irgendwo ein Umlaut zurückbekomme, dann habe ich nen riesiges problem, weil es öfter vorkommen kann, das ich nen Umlaut oder ß zurückkriege.


Weiß vielleicht jemand warum das nicht geht? oder hat jemand ne ahnung, wie, bzw was ich machen kann? Ich bin echt verzweifelt...


Hier ist übriegens der code des PHP Soap Servers.

Zitat:
<?php


$databaseInc = "database.inc";

$wrapperInc = "functions/wrapper.inc";


include_once($databaseInc);
include_once($wrapperInc);

# Function definition -----------------------------------------------------------------------


function addiere($sum1, $sum2) {
# Testfunction to test the soap service
return $sum1 + $sum2;
}
function getServerTime() {
# Testfunction to test the soap service
return time();
}

// New Soap Server --------------------------------------------------------------------->>
try {
$server = new SoapServer(NULL,
array('uri' => "urn:stryykeSoapServer"));


// Add functions to soap service ------------------------------------------------------->>
$server->addFunction(SOAP_FUNCTIONS_ALL); //Funktion zum Server hinzufügen


if ($_SERVER["REQUEST_METHOD"] == "POST") {
$server->handle();
} else {

echo ('<pre>');
print_r($_SERVER);
echo ('</pre>

');
echo "This SOAP server can handle following functions: ";
$functions = $server->getFunctions();
foreach($functions as $func) {
echo '
'.$func . "\n";
}
}


}

catch (SOAPFault $f) {
print $f->faultstring;
}



?>


Florian Gilde
  Mit Zitat antworten Zitat