DOMDocument похоже, преобразует китайские символы в коды, например, 
  你 的 乱发 станет ä½ çš„ä¹±å' 
Как я могу сохранить китайский или другой иностранный язык, вместо того, чтобы преобразовывать их в коды?
Ниже мой простой тест,
 $dom = new DOMDocument(); $dom->loadHTML($html); 
Если я добавлю это ниже перед loadHTML (),
 $html = mb_convert_encoding($html, "HTML-ENTITIES", "UTF-8"); 
Я получил,
 你的乱发 
  Несмотря на то, что скрытые коды будут отображаться в виде китайских символов, 你的乱发  все еще не 你的乱发 что я после …. 
DOMDocument, похоже, преобразует китайские символы в коды […]. Как я могу сохранить китайский или другой иностранный язык, вместо того, чтобы преобразовывать их в коды?
 $dom = new DOMDocument(); $dom->loadHTML($html); 
  Если вы используете функцию loadHTML для загрузки фрагмента HTML.  По умолчанию DOMDocument ожидает, что строка будет в кодировке по умолчанию HTML ( ISO-8859-1 ), однако чаще всего кодировка (sic!) Представляет собой метаинформацию, предоставленную рядом с используемой вами строкой, а не внутри.  Чтобы сделать это более сложным, эта метаинформация будет даже внутри строки. 
В любом случае, поскольку вы не разделили строковые данные HTML и вы не указали кодировку, трудно точно сказать, что происходит.
Я предполагаю, что HTML кодируется в кодировке UTF-8, но это не сигнализируется внутри строки HTML. Таким образом, следующая работа может помочь:
 $doc = new DOMDocument(); $doc->loadHTML('<?xml encoding="UTF-8">' . $html); // dirty fix foreach ($doc->childNodes as $item) if ($item->nodeType == XML_PI_NODE) $doc->removeChild($item); // remove hack $doc->encoding = 'UTF-8'; // insert proper 
  Он вводит подсказку с самого начала (и удаляет ее после загрузки HTML).  С этого момента DOMDocument вернет UTF-8 (как всегда). 
Я просто наткнулся на эту нить при поиске решения аналогичной проблемы, после того, как я правильно загрузил html и сделал синтаксический анализ с помощью Xpath и т. Д. … мой текст заканчивается следующим образом:
 你的乱发 
этот экран отлично отображается в тексте HTML, но не будет отображаться правильно в теге стиля или скрипта (например, настройка шрифтов в китайском шрифте).
исправить это, сделать обратный lauthiamkok сделал:
 $html = mb_convert_encoding($html, "UTF-8", "HTML-ENTITIES"); 
если по какой-либо причине первое обходное решение не работает для вас, попробуйте это преобразование.
  Я уверен, что ä½ çš„ä¹±å' на самом деле является Windows Latin 1 (а не ASCII, в ASCII нет диакритики).  Где-то по пути ваш текст UTF-8 был сохранен как Windows Latin 1 ….