我有与PHP相关的第n个问题编码!
所以故事是:
我从文件中读取了一个网址(ISO-8859)。我不能改变这个文件的编码,因为我不会在这里讨论。
我使用该网址拨打休息网络服务。
url恰好包含符号“è”,当它被PHP引擎加载时会被转移到 。
因此,webservice返回并出现意外结果,因为它获得的实际上是“perch ”而不是“perchè”。
我尝试通过执行以下操作强制php使用ISO-8859:
ini_set('default_charset', "ISO-8859");
问题是它仍然不起作用,并且Web服务无法正确回答。我确信web服务有效,因为我试图在浏览器中手动粘贴网址并收到预期的数据。
答案 0 :(得分:1)
您可以使用iconv()
将数据从一个字符集转换为另一个字符集。
您的REST Web服务很可能期望获得UTF-8数据,因此您必须执行以下操作:
$data = iconv("iso-8859-1", "utf-8", $data);
发送请求之前。