php – 从nuSOAP webservice返回utf-8(波斯语)字符串
发布时间:2020-12-13 22:36:30 所属栏目:PHP教程 来源:网络整理
导读:我写了一个非常简单的网络服务,你可以在下面看到它的代码: 服务器: ?phpini_set('error_reporting',E_STRICT);require_once("nuSOAP/lib/nusoap.php");$namespace = "http://localhost/webservice/index.php";// create a new soap server$server = new so
我写了一个非常简单的网络服务,你可以在下面看到它的代码:
服务器: <?php ini_set('error_reporting',E_STRICT); require_once("nuSOAP/lib/nusoap.php"); $namespace = "http://localhost/webservice/index.php"; // create a new soap server $server = new soap_server(); $server->soap_defencoding = 'utf-8'; $server->decode_utf8 = false; // configure our WSDL $server->configureWSDL("HelloExample"); // set our namespace $server->wsdl->schemaTargetNamespace = $namespace; //Register a method that has parameters and return types $server->register( // method name: 'HelloWorld',// parameter list: array('name'=>'xsd:string'),// return value(s): array('return'=>'xsd:string'),// namespace: $namespace,// soapaction: (use default) false,// style: rpc or document 'rpc',// use: encoded or literal 'encoded',// description: documentation for the method 'Simple Hello World Method'); $POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : ''; // pass our posted data (or nothing) to the soap service $server->service($POST_DATA); exit(); ?> 客户: <!doctype html> <html> <head> <title>Title</title> <meta charset="utf-8"/> </head> <body> <?php require_once("nuSOAP/lib/nusoap.php"); $client = new nusoap_client('http://localhost/webservice/index.php?wsdl'); $client->soap_defencoding = 'UTF-8'; $client->decode_utf8 = true; $err = $client->getError(); if ($err) { echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; die(); } $parameters = array('name' => "????"); $result = $client->call('HelloWorld',$parameters); if ($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } else { echo $result; } ?> </body> </html> 这应该返回Hello????但是这个返回Hello ???? 这是unicode问题吗? 任何帮助解决这个将不胜感激
我自己修理:)
用于服务器代码: $server->soap_defencoding = 'UTF-8'; $server->decode_utf8 = false; $server->encode_utf8 = true; 并为客户代码: $client->soap_defencoding = 'UTF-8'; $client->decode_utf8 = false; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |