我希望在domdocument中加载后得到相同的结果。怎么做?
echo "Café";
$s = <<<HTML
<html>
<head>
</head>
<body>
Café
</body>
</html>
HTML;
$d = new domdocument;
$d->loadHTML($s);
echo $d->textContent;
第一个回声的结果是=Café
第二个回声的结果是=Café
答案 0 :(得分:2)
您需要将HTML标记为UTF-8编码
$s = <<<HTML
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
Café
</body>
</html>
HTML;
$d = new domdocument;
$d->loadHTML($s);
echo $d->textContent;
答案 1 :(得分:1)
你的问题是编码,
对于First Echo,您使用默认编码回显文本,
但是对于通过DOMDocument运行的文本,
e + apostroph被分成两个字符,
我不知道如何对DOMDoc强制执行正确的编码...
但我相信这是您的问题
答案 2 :(得分:1)
使用HTML之前的第一个echo,您可以使用服务器默认编码发送HEADERS。这忽略了任何下一组编码.. 你必须先回应
<Html tag and encodings etc..
并且回显任何其他值..