2009-08-14 74 views
5

當我查看XML數據饋送時,得到的代碼如下,XML代碼中的特殊字符是正確的。 然而,當Curl返回數據時,像「ó」和「ä」這樣的字符被轉換爲resp。 「Ã」和「Ã」。 這種轉換髮生在所有特殊字符上,這兩個只是一個例子。Curl請求中的字符已更改

$myvar = curl_init(); 
$myURL = "http://someurl.com/"; 
curl_setopt($myvar, CURLOPT_USERAGENT, '[Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2")]'); 
curl_setopt($myvar, CURLOPT_URL, $myURL); 
curl_setopt($myvar, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($myvar, CURLOPT_TRANSFERTEXT, TRUE); 
curl_setopt($myvar, CURLOPT_CONNECTTIMEOUT,3); 
$xmlstr = curl_exec ($myvar); 

的XML文件的報頭表示編碼如下 「?XML版本=」 1.0" 編碼= 「UTF-8」?」

我想要的是讓相同的字符顯示在Curl結果中而不進行任何轉換。

希望我錯過了一些簡單易行的步驟,期待任何答案。

問候 馮斯希

回答

6

你怎麼知道$xmlstr包含錯誤的字節?如果您在某種終端窗口中查看輸出,可能是因爲終端不支持UTF-8,而不是cURL被破壞。

cURL不關心UTF-8或任何其他字符編碼 - 它的工作只是從某處獲取一個字節序列。這不可能做任何會破壞特殊字符的東西。如果你使用cURL的方式有問題,它將會破壞所有的東西,而不僅僅是非ASCII字符。

+0

@Ionut - 謝謝,不知道我發生了什麼! – 2009-08-14 12:38:59

+0

當我使用echo $ xmlstr並查看源文件中的字符被轉換。 我使用

作爲輸出的頁眉(html) 你的建議是改變嗎?比我會很高興知道使用什麼標題來代替。 關於 Fons – Fons 2009-08-14 12:42:00

+6

嘗試在您的' ...'部分的頂部添加「'部分。 – 2009-08-14 12:54:51