1

我的 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>

但这并没有做任何事情。 - 谢谢

编辑:: ------------

对于这个问题,接受的答案是正确的。

但我意识到我的实际问题略有不同。

使用 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);
4

2 回答 2

2

采用:

ini_set('default_charset', 'UTF-8');

并且不要使用 iso-8859-1。使用 UTF-8。

从您发布的 mojibake 中,输入字符串是 utf-8,而不是 iso-8859-1。

于 2012-07-19T01:54:09.520 回答
0

您只需要使用htmlspecialchars_decode函数,例如:

$string = '&quot;hello dude&quot;';
$decodechars = htmlspecialchars_decode($string);
echo $decodechars; // output : "hello dude"
于 2015-12-30T16:38:51.697 回答