[eluser]marcoss[/eluser]
htmlentities will convert all applicable characters to HTML entities, it
WILL NOT do character encoding/decoding, the reason it exists is to translate spacial character to their corresponding HTML entities.
However, it may work sometimes as you point, but that is because the function accepts a third parameter ($charset) which if not specified, will default to ISO-8859-1, so the output is returned that way (forced).