Telleproblem

kongen

kongemedlem
Jeg har denne koden

PHP:
$string1 = '<p>Blåbær er godt</p>';

$doc = new DOMDocument;
$doc->loadHTML(mb_convert_encoding($string1, 'HTML-ENTITIES', 'UTF-8'));

$string2 = preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $doc->saveHTML()));

$string2 = html_entity_decode($string2, ENT_QUOTES, "UTF-8");

echo $string1.' - '.strlen($string1).' - '.mb_detect_encoding($string1).'<br>';
echo $string2.' - '.strlen($string2).' - '.mb_detect_encoding($string2);

Resultatet i browseren blir

PHP:
Blåbær er godt
- 23 - UTF-8

Blåbær er godt
- 25 - UTF-8

og i browserens kildekode

PHP:
<p>Blåbær er godt</p> - 23 - UTF-8<br>
<p>Blåbær er godt</p>
 - 25 - UTF-8

Når det er samme tekst i begge stringene og samme charset, hvorfor telles det ikke like mange tegn? Hva må gjøres for at antall tegn fra string2 teller samme antall tegn som string1?
 
Topp