我的PHP脚本解析一个网站并提取一个看起来像这样的HTML DIV(并将其保存为字符串)
<div id="merchantinfo">The following merchants: Nautica®, Brookstone®, Teds® ©2012 Blabla</div>
我将其存储为$ merchantList(字符串)。
但是,当我将数据输出到网页
时echo $merchantList
编码混乱并显示为:
Nautica®, Brookstone®, Teds® ©2012 Blabla
我尝试将以下内容添加到显示页面:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
但那没有做任何事情。 --Thanks
编辑:: ------------
对于这个问题,接受的答案是正确的。
但我意识到我的实际问题略有不同。
使用DOMDocument :: loadHTML的初始解析已经破坏了UTF-8编码,导致字符串保存为
<div id="merchantinfo">The following merchants: Nauticaî, Brookstoneî, Tedsî ©2012 Blabla</div>
这解决了:
$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
$dom->loadHTML($html);
答案 0 :(得分:2)
使用:
ini_set('default_charset', 'UTF-8');
不要使用iso-8859-1。使用UTF-8。
你发布的mojibake输入字符串是utf-8,而不是iso-8859-1。
答案 1 :(得分:0)
您只需要使用htmlspecialchars_decode函数,例如:
$string = '"hello dude"';
$decodechars = htmlspecialchars_decode($string);
echo $decodechars; // output : "hello dude"