0

我有以下代码:

$s = file_get_contents(someurl);

响应是一个 XML,但由于某种原因,它被附加了一个奇怪的符号:

� <?xml version="1.0" encoding="utf-8"?>
 <Response>
 </Response>
�

我尝试了不同类型的编码,但没有运气。

奇怪的是我在本地使用 wamp 工作,但在我的 Nginx+PHP-FPM 上它工作正常。*也许是netbeans的问题?

编辑:

跑步:

mb_detect_encoding($str)

在 wamp 返回 UTF-8 和 NginX 上(响应正常)是:ASCII....我错过了什么?

4

1 回答 1

0

“响应”是指读取到 $s 的 file_get_contents 函数的结果吗?

假设是这种情况,可能是向“someurl”URL 发送响应的服务器正在发送一个 HTTP 标头,该标头正在更改 php 试图读取结果的编码,从而导致这种怪异。

您可以按照此处所述使用 $http_response_header:

http://www.php.net/manual/en/reserved.variables.httpresponseheader.php

找出与对 url 的响应一起发送的 http 标头,以尝试进一步诊断问题。

于 2013-10-02T14:56:35.250 回答