首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python xml-使用PHP客户端和unicode的rpc不起作用

Python xml-使用PHP客户端和unicode的rpc不起作用
EN

Stack Overflow用户
提问于 2013-12-13 08:06:41
回答 1查看 271关注 0票数 0

我有用Python编写的XML-RPC服务器。它获取一些值并将它们保存在mysql数据库中。数据采用utf-8格式,整个过程运行良好。

我可以用Python、ASP.NET和C#等其他语言与它交流,但当涉及到PHP时,就有问题了。字符没有按其应有的方式保存在MySQL中,并且它们都是加扰字符。

我已经完成了所有的建议,如在PHP文件中设置头文件等。我还将MySQL排序规则配置为utf-8,但问题仍然存在。

使用的Curl来自Github:https://github.com/dongsheng/cURL

源码如下:

代码语言:javascript
运行
复制
<?php
error_reporting(E_ALL);
header('Content-Type: text/plain; charset=utf-8');

require_once('curl.php');
$rpc = "http://xmlrpc-webservice-address.com/";
$client = new xmlrpc_client($rpc, true);
$text="سلام";
$arr1=array("username", "password", array("111"), $text, "30002240123456", "ws", False);
$resp = $client->call('send', $arr1);
print_r($resp);
print_r("\n");
print_r($text);
?>
EN

回答 1

Stack Overflow用户

发布于 2013-12-13 08:16:48

您的问题最有可能是以下问题之一(按可能性降序):

PHP

  • 你的PHP源代码实际上并没有编码成-8,而是,比如说,CP1256。这意味着源代码中的非ASCII文字字符串实际上是mojibake无稽之谈,因为PHP解释器将其读取为UTF-8。
  • 你的
  • 源代码被编码成

-8,但是你的

  • 解释器认为它是CP1256,因为它(或你的服务器/模块)的配置方式。因此,再一次,文字字符串是mojibake (相反方向),它再次通过整个链。
  • 您的web服务不会返回UTF-8,但是,比如说,
  • -1,并且您的其他客户端都相应地将其视为Latin 1,但是您的PHP客户端代码只是假定它是UTF-8,并将其传递给浏览器,就像它是UTF-8一样,并且用户看到垃圾。

如果您不能绝对、肯定地确定您的编辑器将源代码保存为UTF-8,请在十六进制编辑器中查看源文件。如果它是UTF-8,那么阿拉伯字符串应该看起来像D8 B3 D9 84 D8 A7 D9 85。如果它有任何不同之处-比如D3 E1 C7 E3 (CP1256)或D3 E3 C7 E5 (ISO-8859-6),那就是您的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20556784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档