PHP htmlentities () не работает должным образом - PullRequest
0 голосов
/ 08 декабря 2011

У меня проблема с htmlentities ()

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

Второй эхо-сигнал должен выдавать арбол (& aacute;)

Я использую utf-8:

<meta charset="utf-8">

Что происходит? Спасибо!

1 Ответ

3 голосов
/ 08 декабря 2011

Вы должны установить третий параметр htmlentities(), который указывает использовать кодировку. Поскольку вы не установили его, используется значение по умолчанию, а по умолчанию используется ISO-8859-1, а не UTF-8.

Как и htmlspecialchars (), он принимает необязательный третий аргумент charset, который определяет набор символов, используемый при преобразовании. В настоящее время набор символов ISO-8859-1 используется по умолчанию.

Просто чтобы уточнить, это подпись функции:

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

и здесь вы найдете официальный документ: http://php.net/manual/en/function.htmlentities.php

...