5

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

我无权更改导入代码的任何内容。我能做些什么来解决这个问题吗?

谢谢

4

5 回答 5

14

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

IE

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

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

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

于 2009-03-16T10:22:33.680 回答
7

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

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

 curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

修复。

一组方便的代码来尝试字符集列表的所有可能组合:

$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); 
    } 
} 
于 2013-08-15T04:44:49.493 回答
3

PHP似乎默认使用UTF-8,所以我发现了以下作品

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

于 2009-04-07T10:02:55.303 回答
3

你可以更换你的

$data = curl_exec($ch);

经过

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

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

于 2012-03-04T20:03:52.767 回答
2

我目前遇到了类似的问题,我正在尝试编写一个简单的 html<title>导入器 cia cURL。所以我要介绍一下我到目前为止所做的事情:

  1. 通过 cURL 检索 HTML
  2. 检查响应标头上是否有任何编码提示,curl_getinfo()并通过正则表达式进行匹配
  3. 解析 HTML 以查看内容类型元和<title>标签(是的,我知道后果
  4. 比较内容类型、标头和元数据,如果不同则选择元数据,因为我们知道没有人关心他们的 httpd 配置,并且使用它有很多肮脏的变通方法
  5. iconv()字符串
  6. 每天都希望当有人不遵守标准时会$DEITY惩罚他/她直到日子结束,因为这样可以节省我的元解析
于 2009-11-19T14:59:01.800 回答