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

问题描述

| 我有PHP相关的第n个问题编码! 所以故事是: 我从文件(ISO-8859)中读取了一个网址。由于各种原因,我无法在此处进行讨论,因此无法更改此文件的编码。 我使用该URL调用其余的Web服务。 该URL恰好包含符号\“è\”,当由PHP引擎加载该符号时,该符号便被迷惑了。 结果,Web服务返回了意外结果,因为它得到的实际上是单词“ perch”,而不是“perchè”。 我试图通过执行以下操作来强制PHP使用ISO-8859:
ini_set(\'default_charset\',\"ISO-8859\");
问题在于它仍然无法正常工作,并且网络服务无法正确应答。我确定当我尝试在浏览器中手动复制粘贴URL时,webservice可以正常工作,并且收到了预期的数据。     

解决方法

        您可以使用
iconv()
将数据从一个字符集转换为另一个字符集。 您的REST Web服务很可能期望使用UTF-8数据,因此您必须执行以下操作:
$data = iconv(\"iso-8859-1\",\"utf-8\",$data);
在发送请求之前。