CURL导入字符编码问题

时间:2009-03-16 06:50:03

标签: php encoding curl

我正在使用CURL导入一些代码。然而,在法语中,所有角色都很有趣。例如:Bonjour ......

我无权更改导入代码的任何内容。有什么我可以帮我解决这个问题吗?

由于

5 个答案:

答案 0 :(得分:14)

就像Jon Skeet指出的那样,很难理解你的情况,但是如果你只能访问最终文本,你可以尝试使用 iconv 来改变文本编码。

$text = iconv("Windows-1252","UTF-8",$text);

我以前有类似的问题(用意大利语和特殊字符),我已经用这种方式解决了它。

尝试不同的组合(UTF-8,ISO-8859-1,Windows-1252)。

答案 1 :(得分:6)

我有类似的问题。我试图遍历输入和输出字符集的所有组合。什么都没有帮助! :(

然而,我能够访问实际获取数据的代码,这就是罪魁祸首所在。数据是通过cURL获取的。添加

 curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

修好了。

一组方便的代码,用于尝试charsets列表的所有可能组合:

$charsets = array(  
        "UTF-8", 
        "ASCII", 
        "Windows-1252", 
        "ISO-8859-15", 
        "ISO-8859-1", 
        "ISO-8859-6", 
        "CP1256"
        ); 

foreach ($charsets as $ch1) { 
    foreach ($charsets as $ch2){ 
        echo "<h1>Combination $ch1 to $ch2 produces: </h1>".iconv($ch1, $ch2, $text_2_convert); 
    } 
} 

答案 2 :(得分:3)

PHP似乎默认使用UTF-8,所以我找到了以下工作

$ text = iconv(“UTF-8”,“Windows-1252”,$ text);

答案 3 :(得分:3)

您可以替换

$data = curl_exec($ch);

通过

$data = utf8_decode(curl_exec($ch));

我有同样的问题,对我来说效果很好。

答案 4 :(得分:2)

我目前遇到了类似的问题,我正在尝试编写一个简单的html <title>导入程序cia cURL。所以我想知道我到目前为止所做的事情:

  1. 通过cURL
  2. 检索HTML
  3. 通过curl_getinfo()检查响应标头上是否有任何编码提示,并通过regex进行匹配
  4. 解析HTML以查看内容类型元和<title>标记(是的,i know the consequences
  5. 比较内容类型,标题和元数据并选择元数据,如果它不同,因为我们知道没有人关心他们的httpd配置,并且有很多使用它的污垢解决方法
  6. iconv()字符串
  7. 每天都知道当有人不遵守标准时$DEITY会惩罚他/她,直到日子结束,因为它会省去元解析