在php中解析html时,Acents成为询问标记
下载html页面时,我会自动获得一个PT-BR文本,当我使用uft8_解码时,提示会变成询问标记,这是我的功能:在php中解析html时,Acents成为询问标记,php,utf-8,html-parsing,Php,Utf 8,Html Parsing,下载html页面时,我会自动获得一个PT-BR文本,当我使用uft8_解码时,提示会变成询问标记,这是我的功能: 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", $
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ÊTINHA DUAS ESCOLHAS:
这就是我得到的:
“挥发性有机化合物?TINHA DUAS ESCOLHAS:
我能做什么?我要显示^!感谢并为糟糕的英语道歉
utf8\u解码
替换无效的代码单元序列?
。您获得?
的原因可能是因为您传递到utf8\u decode
的文本最初不是UTF-8格式的
事实上,它可能已经存在于ISO-8859-1中,这是由utf8\u decode
返回的字符串的编码。在这种情况下,您的解决方案是省略对utf8\u decode
的调用
如果原始文本既不是UTF-8也不是ISO-8859-1(这是我假设您想要的,因为您正在调用utf8\u decode
),则必须使用或
最后一种可能性是,解释脚本输出的任何东西都假定脚本输出的编码与实际编码不同,并且它还将无效的代码单元序列转换为
?
尝试使用编码
$download['FILE'] = utf8_encode($download['FILE']);
您可能需要将“”添加到您的html部分。我没有html部分,它是一个控制台程序。请注意:您可以在str\u replace中使用数组(“var resp=”,“\\r\\n”,“;”,“\”,“,$download['FILE')代码>是windows cmd.exe,你觉得怎么样?如果我省略utf8\u解码,我会得到这样的东西:TUDO BEM COM VOC╩? 而不是TUDO BEM COM VOCÊ?,├â┬ëBOM N├â┬ë? 您必须设置正确的代码页并使用能够显示这些字符的字体,而不是在ÉBOM NÃOÉ?André。在运行PHP脚本之前,编写chcp 1252
(Windows-1252类似于ISO-8859-1)。UTF-8的代码页为65001。