【问题标题】:characters changed in a Curl request在 Curl 请求中更改的字符
【发布时间】:2009-08-14 12:21:22
【问题描述】:

当我查看使用以下代码获得的 XML 数据提要时,XML 代码中的特殊字符是正确的。 但是,当 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 version="1.0" encoding="UTF-8"?"

我想要的只是让相同的字符显示在 Curl 结果中而不进行任何转换。

希望我只是错过了一些简单的步骤,期待任何答案。

最好的问候 字体

【问题讨论】:

    标签: encoding curl


    【解决方案1】:

    你怎么知道$xmlstr 包含错误的字节?如果您在某种终端窗口中查看输出,则问题可能是终端不支持 UTF-8,而不是 cURL 损坏。

    cURL 不关心 UTF-8 或任何其他字符编码——它的工作只是从某个地方获取一个字节序列。它不太可能做任何会破坏特殊字符的事情。如果您使用 cURL 的方式有问题,它将破坏所有内容,而不仅仅是非 ASCII 字符。

    【讨论】:

    • 当我使用 echo $xmlstr 并查看源文件时,字符被隐藏了。我使用
      ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22></code></pre" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></…> 作为输出的标题 (html) 你的建议是改变那个?比我会很高兴知道改用什么标题。关于 Fons
    • 尝试在<head>...</head> 部分的顶部添加<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    • 你刚刚拯救了我的一天!!像预期的那样工作,现在我不再有有趣的“ó”和“ä”了。只是可以为此猛烈抨击自己。由于这是一个本地网站,我并不关心标题中的任何元标记,我在其中使用默认设置来设置外部页面。非常感谢,你只是给了我一个无工作的周末!最好的问候 Fons
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多