Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中解析html时,Acents成为询问标记_Php_Utf 8_Html Parsing - Fatal编程技术网

在php中解析html时,Acents成为询问标记

在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", $

下载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", $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。