Problem Description:
When using PHP and Java to manipulate XML-RPC, if the request contains Chinese characters, it is automatically encoded into the following style:
Huan Huan.
Environment: PHP built-in XML-RPC's Api,apache java API xml-rpc
Workaround under PHP:
At first I thought it was a coding problem for Chinese characters, so I tried to encode Chinese characters in various encodings, and then handed the string Xmlrpc_encode_request (string method, mixed params) function to generate XML-formatted requests. But still. It is not a world of thought. Then the Google a pass God search, also did not find a solution, then I found http://xmlrpc-epi.sourceforge.net/this site. Only to know that the original PHP document to the Xmlrpc_encode_request (string method, mixed params) function is an optional parameter!!!! The correct one should be this: string Xmlrpc_encode_request (String method, mixed params [, array output_options])!! The structure of the output_options is as follows:
$output _options = Array (
"Output_type" = "xml",
"Verbosity" = "Pretty",
"Escaping" = = Array ("Markup", "Non-ascii", "Non-print"),
"Version" = "Xmlrpc",
"Encoding" = "Utf-8"
);
Or
$output _options = Array ("Output_type" = "php");
The original description is as follows:
Output_type:return data as either PHP native data types or XML encoded. Ifphp is used and then the other values are ignored. Default = XML
Verbosity:determine compactness of generated XML. Options are No_white_space, Newlines_only, and pretty. Default = Pretty
Escaping:determine How/whether to escape certain characters. 1 or more values is allowed. If multiple, they need to be specified as a sub-array. Options Are:cdata, Non-ascii, non-print, and Markup.default = Non-ascii, Non-print, markup
Version:version of XML vocabulary to use. Currently, three is SUPPORTED:XMLRPC, SOAP 1.1, and simple. The keyword Auto is also recognized to mean respond in whichever version of the request came in. Default = Auto (when Applica BLE), Xmlrpc
Encoding:the encoding that the data are in. Since PHP defaults to iso-8859-1 you'll usually want to use that. Change the IT if you know what is doing. Default=iso-8859-1
After testing the key is in the "escaping" = = Array ("markup") this value, the third parameter passed to the following value to solve the problem:
$output _options = Array (
"Output_type" = "xml",
"Verbosity" = "Pretty",
"Escaping" = = Array ("markup"),
"Version" = "Xmlrpc",
"Encoding" = "Utf-8"
);
Apache JAVA Xml-rpc Workaround
The API provided by Apache did not seem to find a third parameter like PHP, but I found that he provided a Base64 class, I had to put all the Chinese characters on the client side with BASE64 code, and then request to the server, Then in the server side with Base64 decoding, haha ~ ~ ~ Problem can also be solved! But I don't know if there's any better way.
Who has a better solution please contact me:
qq:3470431
Msn:imdishui@hotmail.com
Email:wangsg@asiainfo.com
http://www.bkjia.com/PHPjc/313778.html www.bkjia.com true http://www.bkjia.com/PHPjc/313778.html techarticle problem Description: When using PHP and Java operation Xml-rpc, if the request contains Chinese characters, it will be automatically encoded into the following style:. Environment: PHP built-in Xml-rpc api,apache ...