2013-08-16 4 views
1

Я попробовал функцию htmlentities() с PHP 5 с этим кодом:Почему функция htmlentities работает неправильно?

<?php 
$string="Einstürzende Neubauten"; echo htmlentities($string); 
?> 

И он отображает только два пробела (т.е. "«). Почему это? Я попытался заменить символ «u с diaeresis» другим, и он работает. Как я могу получить эту работу?

+0

правой кнопкой мыши и просмотреть страницу просмотреть исходный код его работы. –

+0

yep, работы для меня были хорошо –

+0

может быть проблема с кодировкой. вы пробовали 'meta charset = utf-8'? – Nikitas

ответ

2

использование кодировок для данного контента .... например

$res = htmlentities ($string, ENT_COMPAT, 'UTF-8'); 

Для получения дополнительной информации посмотрите in the manual htmlentities()

Какой PHP-версии вы используете?

может быть, это может быть решением для вас

$string = mb_convert_encoding ($str , "UTF-8"); 
// testing 
    var_dump($string); 
$res = htmlentities ($string, ENT_COMPAT, 'UTF-8'); 
// testing 
    var_dump($res); 

См PHP manual

+0

Я пробовал, но он все еще не работает. – sl34x

+0

В любом случае, спасибо. Это был файл .php, который был закодирован в ANSI (по умолчанию с записью в Windows). Я изменил его, настроил в настройках php и apache кодировку UTF-8, и теперь все работает. – sl34x

0

У меня была такая же проблема, когда я модернизировал PHP версии с 5.2 до 5.6. Я писал:

$res = htmlentities("Producción", ENT_IGNORE); 

И я получил

Produccin 

, но я решил его, добавив это после того, как подключиться к базе данных

mysqli_set_charset($idCon,'utf8'); 
Смежные вопросы