Curl请求中的字符已更改
问题描述:
当我查看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结果中而不进行任何转换。
希望我错过了一些简单易行的步骤,期待任何答案。
问候 冯斯希
答
你怎么知道$xmlstr
包含错误的字节?如果您在某种终端窗口中查看输出,可能是因为终端不支持UTF-8,而不是cURL被破坏。
cURL不关心UTF-8或任何其他字符编码 - 它的工作只是从某处获取一个字节序列。这不可能做任何会破坏特殊字符的东西。如果你使用cURL的方式有问题,它将会破坏所有的东西,而不仅仅是非ASCII字符。
@Ionut - 谢谢,不知道我发生了什么! – 2009-08-14 12:38:59
当我使用echo $ xmlstr并查看源文件中的字符被转换。 我使用
作为输出的页眉(html) 你的建议是改变吗?比我会很高兴知道使用什么标题来代替。 关于 Fons – Fons 2009-08-14 12:42:00尝试在您的'
...'部分的顶部添加“'部分。 – 2009-08-14 12:54:51