我通过下载html页面自动获取PT-BR文本,当我使用uft8_decode时,acentution成为询问标记,这是我的功能:
function pegaMsg($string)
{
$bot_url = "http://website.com";
//&rnd=&msg="
$rand_msg = rand(0,100);
$url = $bot_url . $rand_msg . "&msg=" . $string;
$url = str_replace(" ", "%20", $url);
//echo "\n" . $url;
$download = http_get($url, $referer="");
$download['FILE'] = utf8_decode($download['FILE']);
$download['FILE'] = str_replace("var resp = ", "", $download['FILE']);
$download['FILE'] = str_replace("\\r\\n", "", $download['FILE']);
$download['FILE'] = str_replace(";", "", $download['FILE']);
$download['FILE'] = str_replace("\'", "", $download['FILE']);
$download['FILE'] = trim($download['FILE']);
return $download['FILE'];
}
这是预期的输出:
VOCÊTINHADUAS ESCOLHAS:
这就是我得到的:
“VOC? TINHA DUAS ESCOLHAS:
我该怎么办?我希望^显示!感谢和抱歉英语不好
答案 0 :(得分:0)
utf8_decode
替换了无效的代码单元序列?
。您收到?
的原因很可能是因为您传递给utf8_decode
的文字不是以UTF-8开头的。
事实上,它可能已经在ISO-8859-1中,它是utf8_decode
返回的字符串的编码。在这种情况下,您的解决方案是忽略对utf8_decode
的调用。
如果原始文本既不是UTF-8也不是ISO-8859-1(这是我想要的,因为你正在调用utf8_decode
),你必须使用{{3 }或iconv
。
最后一种可能性是,解释脚本输出的任何内容都假设脚本输出的编码与实际不同,并且它还将无效的代码单元序列转换为?
。
答案 1 :(得分:0)
尝试使用encode
$download['FILE'] = utf8_encode($download['FILE']);