htmlentities уничтожает строки utf-8

У меня здесь что-то странное, и я не понимаю, почему на моем сервере php 5.2.5 (Just on Linux, php-серверы Windows не имеют одинаковой проблемы). Когда я использую форму POST для публикации содержимого на входе, содержащем «é», а с другой стороны я

echo(htmlentities($_POST["myinput"])) 

это é

Но если я повторю

 $_POST["myinput"] 

просто он показывает «é», поэтому это означает, что мои htmlentities не используют UTF-8 по умолчанию, где я могу изменить Charset, используемый htmlentities?

Я попытался изменить его в моем php.ini default_charset = «UTF-8», но он тоже не сработает?

Solutions Collecting From Web of "htmlentities уничтожает строки utf-8"

htmlspecialchars($str, ENT_QUOTES, "UTF-8")

Это также лучше предотвращает xss, чем просто htmlentities()

В версии 5.4.0 значение по умолчанию для параметра кодирования было изменено на UTF-8.

Источник: руководство

Единственный способ изменить htmlentities() – это указать ее в третьем параметре.

Невозможно изменить кодировку по умолчанию. До PHP 5.4 Это всегда iso-8859-1 .

Однако это было изменено в PHP 5.4 и теперь оно всегда utf-8

Из руководства php: htmlentities () принимает необязательную кодировку третьего аргумента, которая определяет кодировку, используемую при преобразовании. Из PHP 5.6.0 значение default_charset используется по умолчанию. Из PHP 5.4.0 UTF-8 по умолчанию. PHP до 5.4.0, ISO-8859-1 используется по умолчанию. Хотя этот аргумент технически необязателен, вам настоятельно рекомендуется указать правильное значение для вашего кода.

И если вы не хотите беспокоиться о стольких разных кодировках кодировки или если htmlentities не работает для вас, вот альтернатива: я использовал mysqli DB connection (и PHPV5) сообщение формы для записи / вставки в MySQl DB.

 $Notes = $_POST['Notes']; //can be text input or textarea. $charset = mysqli_character_set_name($link); //mysqli connection printf ("To check your character set but not necessary %s\n",$charset); $Notes = str_replace('"', '&quot;', $Notes); //double quotes for mailto: emails. $von = array("ä","ö","ü","ß","Ä","Ö","Ü"," ","é"); //to correct double whitepaces as well $zu = array("&auml;","&ouml;","&uuml;","&szlig;","&Auml;","&Ouml;","&Uuml;","&nbsp;","&#233;"); $Notes = str_replace($von, $zu, $Notes); echo " Notes:".$Notes."<br>" ; $Notes = mysqli_real_escape_string($link, $Notes); //for mysqli DB connection. // Escapes special characters in a string for use in an SQL statement echo " Notes:".$Notes ; //ready for inserting