Lösung für verstümmelten PHP-Webservice: Öffnen Sie zuerst die Datei „nusoap.php“ und ändern Sie dann den Inhalt in „var $soap_defencoding = ‚UTF-8‘;“ und „var $decode_utf8 = false;“.
Empfohlen: „PHP-Video-Tutorial“
php-Lösung zum Aufrufen verstümmelter chinesischer Webservice-Zeichen
Aus beruflichen Gründen habe ich meinem Kollegen A Tao geholfen, die Anwendung von .net Webservice unter PHP zu testen Ich habe im Internet nach Informationen gesucht und festgestellt, dass viele PHP-Tutorials Nusoap verwenden. Die Download-Adresse finden Sie im Anhang am Ende des Artikels wie folgt:
rrreeWenn der von meinem Webservice zurückgegebene Inhalt kein Chinesisch enthält, ist das obige Beispiel erfolgreich. Wenn jedoch der von meinem Webservice zurückgegebene Inhalt Chinesisch enthält, wird der zurückgegebene Wert angezeigt verstümmelt. Schauen Sie sich das Ergebnis der Antwort an. Es sollte ein Problem bei der Verarbeitung mit nusoap geben. Da ich das PHP-Breakpoint-Debugging-Tool nicht installiert habe, weiß ich nicht einmal, ob es ein solches gibt ein Tool), also gibt es nur eine Methode, eine. Nachdem ich sie mir einen Tag lang angesehen habe, habe ich sie endlich fertiggestellt. Ich habe zwei Stellen in nusoap.php geändert und sie war in Ordnung.
Geänderte Stellen:
rrreeSie können es auch unverändert lassen, aber Sie müssen die Codierung beim Aufruf angeben.
<?php require_once('../nusoap/lib/nusoap.php'); $client = new soapclient('http://localhost/TestService/Service1.asmx?WSDL', true); $err = $client->getError(); if ($err) { echo '<h2>Constructor error</h2><pre class="brush:php;toolbar:false">' . $err . ''; } // Doc/lit parameters get wrapped $param = array('str' => 'China'); $result = $client->call('HelloWorld', array('parameters' => $param), '', '', false, true,'document','encoded'); // Check for a fault if ($client->fault) { echo '
'; print_r($result); echo ''; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '
' . $err . ''; } else { // Display the result echo '
'; print_r($result); echo ''; } } echo '
' . htmlspecialchars($client->request, ENT_QUOTES) . ''; echo '
' . htmlspecialchars($client->response, ENT_QUOTES) . '';//开源代码最模板zuimoban.com echo '
' . htmlspecialchars($client->debug_str, ENT_QUOTES) . ''; ?>
Der Effekt ist der gleiche. Wenn die Parameter in der Anfrage auf Chinesisch sind, senden Sie sie einfach per Post oder holen Sie sie ab Parameter auf Chinesisch im Code müssen Sie die Kodierung in UTF8 konvertieren. Möglicherweise Referenzanhang.
Das obige ist der detaillierte Inhalt vonWas tun, wenn der PHP-Webservice verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!