Search code examples
phpdomcharacter-encoding

PHP encoding with DOMDocument


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

When I try to get the content of the following code using DOMDocument functions, it returns something like:

ÐÐ»ÐµÐºÑ Ðœ

I've tried setting DOMDocument encoding to different values (UTF-8, ISO-8859-1), using mb_convert_encoding, iconv and utf8_encode but without success.

How can I get "Алекс М" instead of "ÐÐ»ÐµÐºÑ Ðœ" ?

EDIT: The input is coming from a page loaded with curl. When I output the page content to my browser, the characters are displayed correctly (so I doubt the input is the problem).


Solution

  • Try:

    $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);