Bonjour,

J'ai des soucis pour transferer des chaines de caracteres composees de caracteres speciaux.
Mon serveur est en PHP.
Si je fais un client PHP, celui-ci communique correctement la chaine.

Voici le code du serveur PHP:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
 
include("xmlrpcutils/xmlrpc.inc.php");
include("xmlrpcutils/xmlrpcs.inc.php");
 
function getTest($param){
        $fp = fopen("/tmp/debug.xmlrpc.txt","a");
        fwrite($fp, date("d.m.y H:i:s : ")."parametre : ---".$param."---\n");
        fclose($fp);
        return new xmlrpcresp(new xmlrpcval('90', 'int'));
}
 
$server = new xmlrpc_server( array(
        "getTest"         => array("function" => "getTest", "signature"          => array(array($xmlrpcInt, $xmlrpcString)))
    ),false);
 
$server->functions_parameters_type = 'phpvals';
$server->response_charset_encoding = 'ISO-8859-1';
$server->service();
 
?>
et mon client PHP qui fonctionne parfaitement.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
include "xmlrpcutils/xmlrpc.inc.php";
 
$xmlrpc_client = new xmlrpc_client('/server_test.php','monserveur',80); 
 
// 2: CONSTRUCT THE REQUEST (AN XML-RPC MESSAGE) 
 
$xmlrpc_msg = new xmlrpcmsg('getTest', array(new xmlrpcval('caractères','string'))); 
 
// 3: SEND THE REQUEST 
 
$xmlrpc_resp = $xmlrpc_client->send($xmlrpc_msg); 
 
// 4: WORKING WITH THE SERVER'S RESPONSE 
 
if ($xmlrpc_resp == False) // check for successful transaction 
	die('error message'); 
 
if (!$xmlrpc_resp->faultCode()) { 
 
 
}?>
et voici mon client python qui n'envoit pas les données correctement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
import xmlrpclib
 
server = xmlrpclib.Server('http://monserveur/server_test.php');
 
machaine = "Ceci est un test avec des caractères très spéciaux..."
result = server.getTest(machaine)
print "Result:", result
Mes caractères non ascii sont d'office remplacés par des "?".

Une idée serait la bienvenue.
Merci d'avance.

J