htmlentities возвращает пустую строку

следующий код выводит пустую строку. Причина - " - " в $text, но почему? Какие символы кодирует utf-8?

проблема решена при использовании iso-8859-1, но мне нужно использовать utf-8, так что я делаю неправильно?

<!doctype html>
<head>
  <meta charset="utf-8">
</head>

<body>
<?
$text = 'Hola ó Hola';
$text = htmlentities($text,ENT_QUOTES,'utf-8');
echo $text;
?>
</body>
</html>

3 ответов


убедитесь, что вы сохранили исходный файл как UTf-8, если он содержит строку. Еще убедитесь, что все, что поставляет строку, поставляет ее как UTF-8.


У меня была аналогичная проблема и я использовал флаг ENT_SUBSTITUTE для предотвращения пустой строки. Он все еще не кодировался, и я не мог полагаться на файл UTF-8, поэтому я преобразовал кодировку только в строку:

$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");

  1. откройте редактор кода (например, notepad++).
  2. щелкните New > Save As.. поставить имя файла (пустое время) и в поле Тип выберите PHP Hypertext ...
  3. Теперь скопируйте все содержимое исходного файла и поместить в новый файл.
  4. щелкните сохранить и попробовать.