PHP和JAVA的XML-RPC中文问题解决办法

惜梦鲸

惜梦鲸

2016-01-29 15:03

PHP和JAVA的XML-RPC中文问题解决办法,PHP和JAVA的XML-RPC中文问题解决办法

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

      问题描述:
      在使用PHP和JAVA操作XML-RPC的时候,如果request中包含中文字符,会被自动编码成如下样式:

欢欢 。

      环境:PHP内置XML-RPC的API,Apache的XML-RPC的JAVA API

      PHP下的解决方法:
      起初以为是中文字符的编码问题,所以我就尝试用各种编码方式来编码中文字符,然后交给string xmlrpc_encode_request ( string method, mixed params)函数来生成XML格式的请求,可是依然如故。百思不得其界。便操其Google 一通神搜,也没找到解决办法,后来我找到了http://xmlrpc-epi.sourceforge.net/这个网站。才知道,原来PHP文档里给的xmlrpc_encode_request ( string method, mixed params)函数少了一个可选参数!!!!正确的应该是这样的:string xmlrpc_encode_request(string method, mixed params [, array output_options])!!output_options的结构如下:

$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");

原文说明如下:

output_type: return data as either php native data types or xml encoded. ifphp is used, 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 are 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 are supported: xmlrpc, soap 1.1, and simple. The keyword auto is also recognized to mean respond in whichever version the request came in. default = auto (when applicable), xmlrpc

encoding: the encoding that the data is in. Since PHP defaults to iso-8859-1 you will usually want to use that. Change it if you know what you are doing. default=iso-8859-1

经过测试关键是在"escaping" = array("markup")这个值上,将第三个参数传入如下值就可以解决问题了:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

$output_options = array(
                       "output_type" = "xml",
                       "verbosity" = "pretty",
                       "escaping" = array("markup"),
                       "version" = "xmlrpc",
                       "encoding" = "utf-8"
                      );


      Apache JAVA XML-

展开更多 50%)
分享

猜你喜欢

PHP和JAVA的XML-RPC中文问题解决办法

PHP
PHP和JAVA的XML-RPC中文问题解决办法

MSN常见问题解决办法

聊天软件
MSN常见问题解决办法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC下TabCtrl的控制问题解决办法

编程语言 网络编程
VC下TabCtrl的控制问题解决办法

Redhat9下的java中文问题解决

编程语言 网络编程
Redhat9下的java中文问题解决

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

php5中XML-RPC函数的使用

PHP
php5中XML-RPC函数的使用

访问windows XP共享出现的问题解决办法

windows 操作系统
访问windows XP共享出现的问题解决办法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

mysql常识和基本操作

mysql常识和基本操作

MySQL入门学习(二)

MySQL入门学习(二)
下拉加载更多内容 ↓