在进行Web服务调用时在PHP中编码问题

时间:2011-06-14 14:01:24

标签: php

我有与PHP相关的第n个问题编码!

所以故事是:

  • 我从文件中读取了一个网址(ISO-8859)。我不能改变这个文件的编码,因为我不会在这里讨论。

  • 我使用该网址拨打休息网络服务。

  • url恰好包含符号“è”,当它被PHP引擎加载时会被转移到 。

  • 因此,webservice返回并出现意外结果,因为它获得的实际上是“perch ”而不是“perchè”。

我尝试通过执行以下操作强制php使用ISO-8859:

ini_set('default_charset', "ISO-8859");

问题是它仍然不起作用,并且Web服务无法正确回答。我确信web服务有效,因为我试图在浏览器中手动粘贴网址并收到预期的数据。

1 个答案:

答案 0 :(得分:1)

您可以使用iconv()将数据从一个字符集转换为另一个字符集。

您的REST Web服务很可能期望获得UTF-8数据,因此您必须执行以下操作:

$data = iconv("iso-8859-1", "utf-8", $data);

发送请求之前。