簡體   English   中英

php file_get_content xml的錯誤響應編碼

[英]php file_get_content wrong response encoding for xml

我有以下代碼:

$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 ....我缺少什么?

“響應”是指file_get_contents函數的結果(讀入$ s)嗎?

假設是這種情況,則可能是正在將響應發送到“ someurl” URL的服務器正在發送HTTP標頭,該標頭正在更改php試圖讀取結果的編碼,從而導致這種怪異現象。

您可以按照以下說明使用$ http_response_header:

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

找出與URL響應一起發送的http標頭,以嘗試進一步診斷問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM