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


Следующий код выводит пустую строку. Причина в "-" в $тексте, но почему? Какие символы тогда кодирует 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>
Author: Cœur, 2011-12-09

3 answers

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

 7
Author: Halcyon, 2011-12-09 02:37:25

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

$text = htmlentities(mb_convert_encoding($text, 'UTF-8', 'ASCII'), ENT_SUBSTITUTE, "UTF-8");
 30
Author: jgreep, 2015-07-29 16:24:25
  1. Откройте редактор кода (например, notepad++ или другой).
  2. Нажмите New > Save As.. введите имя файла (некоторое время пустое) и в поле тип выберите PHP Hypertext ...
  3. Теперь скопируйте все содержимое вашего исходного файла и поместите в этот новый файл.
  4. Нажмите сохранить и попробуйте.
 0
Author: Ciniro Nametala, 2017-03-31 00:23:07