2009-08-14 40 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