首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用phpxmlrpc时跟踪XML-RPC编码问题

问使用phpxmlrpc时跟踪XML-RPC编码问题
EN

Stack Overflow用户
提问于 2013-08-03 21:30:15
回答 2查看 438关注 0票数 0

我使用的是带有最新XmlRpcPlugin的trac 1.0.1。使用python添加工单时,会正确插入非ASCII码字符(本例中为ä):

代码语言:javascript
复制
import xmlrpclib
server = xmlrpclib.ServerProxy('https://user:pwd@localhost/trac/login/xmlrpc')
server.ticket.create("Täst", "Täst")

现在我想使用phpxmlrpc添加一个票证,如下所示:

代码语言:javascript
复制
$client = new xmlrpc_client("https://localhost/trac/xmlrpc");
$client->setCredentials("usr", "pwd", CURLAUTH_BASIC);

$xmlrpc_msg = new xmlrpcmsg('ticket.create', array(new xmlrpcval("Täst"), new xmlrpcval("Täst"));
$xmlrpc_resp = $client->send($xmlrpc_msg);

我现在得到这个错误:not well-formed (invalid token): line 6, column 57,并且没有插入票证。

将$client->request_charset_encoding设置为UTF-8或ISO-8859-1时,两次都会插入票证,但所有非ascii字符的格式都不正确。

我怎么才能让它正常工作呢?

EN

回答 2

Stack Overflow用户

发布于 2013-08-17 07:47:06

请注意,众所周知,PHP在Unicode字符方面存在问题。another SO question对此进行了更详细的讨论。

在将字符串传递给utf8_encode()函数之前,请尝试使用xmlrpc函数对字符串进行编码。

票数 0
EN

Stack Overflow用户

发布于 2017-11-24 08:20:12

主要的问题是:你的例子是否相关,即。你的源码字符串是作为php源码的一部分保存的,还是从其他地方获得的,比如数据库?

如果它存储在php源文件中,那么在保存该文件时,您应该确保控制文本编辑器使用的字符集:

如果您将php源代码保存为utf8: nothing to do

  • 如果您将php源代码保存为utf8-1:您可以在字符串

上调用utf8_encode

完成后,您必须告诉phpxmlrpc库您的应用程序内部使用的字符集是utf8。这不是通过设置$client->request_charset_encoding来实现的,而是通过设置PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding来实现的

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

https://stackoverflow.com/questions/18033384

复制
相关文章

相似问题

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