PHP-кодирование с помощью DOMDocument

<tag> Алекс М </tag> 

Когда я пытаюсь получить содержимое следующего кода с помощью функций DOMDocument, он возвращает что-то вроде:

 ÐÐ»ÐµÐºÑ Ðœ 

Я попытался установить кодировку DOMDocument на разные значения (UTF-8, ISO-8859-1), используя mb_convert_encoding, iconv и utf8_encode, но безуспешно.

Как я могу получить «Алекс М» вместо «Ðл ÐμÐºÑ Ð? "?

EDIT: вход поступает со страницы, загруженной с помощью завитка. Когда я выводит содержимое страницы в свой браузер, символы отображаются правильно (поэтому я сомневаюсь, что вход является проблемой).

Solutions Collecting From Web of "PHP-кодирование с помощью DOMDocument"

Пытаться:

 $string = file_get_contents('your-xml-file.xml'); $string = mb_convert_encoding($string, 'utf-8', mb_detect_encoding($string)); // if you have not escaped entities use $string = mb_convert_encoding($string, 'html-entities', 'utf-8'); $doc = new DOMDocument(); $doc->loadXML($string); 

У меня была аналогичная проблема после использования XPath для анализа DomDocument, и после прочтения этого

https://bugs.php.net/bug.php?id=32547

Я решил это так

 // Workaround because PHP 5.2.x has encoding problems, when we // update to PHP 5.3 this line is not necesserry any more $content = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . $content; // Creating new DOM document and loading HTML content $dom_document = new DOMDocument('1.0', 'UTF-8'); $dom_document->substituteEntities = TRUE; $dom_document->loadHTML($content); 

Добавьте заголовок xml в теги – попробуйте следующее:

 $a = new DOMDocument (); $a->loadXml ('<?xml version="1.0" encoding="UTF-8"?><tag>Алекс М</tag>'); print htmlspecialchars ($a->saveXml ());