我无法弄清楚如何阻止DOMDocument破坏这些字符.
<?php
$doc = new DOMDocument();
$doc->substituteEntities = false;
$doc->loadHTML('<p>¯\(°_o)/¯</p>');
print_r($doc->saveHTML());
?>
Run Code Online (Sandbox Code Playgroud)
预期输出:¯(°_o)/¯
实际输出:¯(°_o)/¯¯
我在DOMDocument::loadHTML文档的注释中发现了一个提示:
(来自 <mdmitry at gmail dot com> 2009 年 12 月 21 日 05:02 的评论:“您还可以使用这个简单的 hack 将 HTML 加载为 UTF-8:”)
只需'<?xml encoding="UTF-8">'在 HTML 输入之前添加:
$doc = new DOMDocument();
//$doc->substituteEntities = false;
$doc->loadHTML('<?xml encoding="UTF-8">' . '<p>¯\(°_o)/¯</p>');
print_r($doc->saveHTML());
Run Code Online (Sandbox Code Playgroud)