0

I'm having a problem with htmlentities()

$txt = "árbol";
echo $txt; // outputs: árbol
echo htmlentities($txt); // outputs: árbol (árbol)

The second echo should output árbol (á)

I'm using utf-8:

<meta charset="utf-8">

What's going on? Thank you!

1
  • It's worth noting that this shouldn't normally be necessary to do. If you're having trouble with broken characters, adjust your encodings instead. Somewhat related: UTF-8 all the way through Commented Feb 11, 2013 at 23:23

1 Answer 1

3

You have to set the third parameter of htmlentities() which tells the charset to use. Because of you don't set it, the default is used and the default is ISO-8859-1, not UTF-8.

Like htmlspecialchars(), it takes an optional third argument charset which defines character set used in conversion. Presently, the ISO-8859-1 character set is used as the default.

Just to clarify, this is the function signature:

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $charset [, bool $double_encode = true ]]] )

and here you'll find the official doc: http://php.net/manual/en/function.htmlentities.php

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.