2014-12-19 5 views
-2

Почему htmlentities возвращает пустую строку:Почему htmlentities возвращают пустую строку?

<?php 
session_start(); 
?> 

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

    <html> 

    <head> 
     <title>Index</title> 
     <link rel="stylesheet" type="text/css" href="../stijlen.css" /> 
     <meta charset="UTF-8"> 

     <style> 
     @charset "UTF-8"  

     </style> 

    </head> 

    <body> 
     <h2>Main index</h2> 


     <?php 
      echo(htmlentities("José", ENT_NOQUOTES, "UTF-8")); 
     ?> 
    </body> 
</html> 

Если я оставить из «UTF-8» часть функции она работает отлично. «É» создает проблему, но я не понимаю, почему. Почему это будет недопустимым персонажем?

+2

Может ли ваш исходный файл НЕ кодироваться в UTF8? –

+1

Ваш полный файл хранится также в формате UTF-8? Если у вас есть файл ISO и вы определяете UTF-8 в кодировке, то у вас есть именно эта проблема. –

+0

Отредактировано: «I try try the file as« UTF-8 », но затем я получил сообщение об ошибке session_start(); Предупреждение: session_start() [function.session-start]: не удается отправить ограничитель кеша сеанса - уже отправлены заголовки (вывод запущен в /home/st016/domains/domain.nl/public_html/portal/index.php:1) в/home /st016/domains/domain.nl/public_html/portal/index.php в строке 2 – Coenj

ответ

4

Исходный файл не указан в UTF8. В php documentation for htmlentities() говорится:

Если входная строка содержит некорректную последовательность кода единицы в данной кодировке пустая строка будет возвращена, если либо ENT_IGNORE или ENT_SUBSTITUTE флаги не установлены.

Смежные вопросы