Be aware that the strings in your source files must match the encoding you specify by mb_internal_encoding. It appears the Parser loads raw bytes from the file and refers to its internal encoding to determine their actual encoding.



To demonstrate, the following outputs as espected when the /source/ file is Latin-1 encoded:



<?php

mb_internal_encoding ( "iso-8859-1" );

mb_http_output ( "UTF-8" );

ob_start ( "mb_output_handler" );



echo "���<br/>" ;



?> ���



Now, a typical use of mb_internal_encoding is shown as follows. Make the change to "utf-8" but leave the /source/ file encoding unchanged:



<?php

mb_internal_encoding ( "UTF-8" );

mb_http_output ( "UTF-8" );

ob_start ( "mb_output_handler" );



echo "���<br/>" ;



?> ���



The output will just show the <br/> tag and no text.



Save the file as UTF-8 encoding and then the results will be as expected.