网络服务器使用utf-8编码提供响应,所有文件都使用utf-8编码保存,我所知道的设置都已设置为utf-8编码.
这是一个快速程序,用于测试输出是否有效:
<?php
$html = <<<HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test!</title>
</head>
<body>
<h1>? Hello ? World ?</h1>
</body>
</html>
HTML;
$dom = new DomDocument("1.0", "utf-8");
$dom->loadHTML($html);
header("Content-Type: text/html; charset=utf-8");
echo($dom->saveHTML());
Run Code Online (Sandbox Code Playgroud)
该计划的输出是:
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Test!</title></head><body>
<h1>☆ Hello ☆ World ☆</h1>
</body></html>
Run Code Online (Sandbox Code Playgroud)
其呈现为:
我能做错什么?我需要告诉DomDocument正确处理utf-8还有多少具体内容?
我正在使用cURL来检索网页.
获取页面编码的最简单方法是什么?
当然我可以解析响应头来获取charset,但我想知道是否有更好的方法.