我正在使用CURL导入一些代码。然而,在法语中,所有角色都很有趣。例如:Bonjour ......
我无权更改导入代码的任何内容。有什么我可以帮我解决这个问题吗?
由于
答案 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。所以我想知道我到目前为止所做的事情:
curl_getinfo()
检查响应标头上是否有任何编码提示,并通过regex进行匹配<title>
标记(是的,i know the consequences)iconv()
字符串$DEITY
会惩罚他/她,直到日子结束,因为它会省去元解析