html-объекты не конвертируют специальные символы

Я использую htmlentities, который преобразует символы с акцентами, но не преобразует этот тип кавычек ». Вместо этого браузер показывает странный символ с вопросительным знаком

Как я могу преобразовать эти символы, отображаемые в виде символов? Например, книга под названием «Цветные цвета» находится на столе.

Я пробовал эти команды, но он не работает:

htmlentities($message); htmlentities($message, ENT_QUOTES, 'UTF-8'); htmlentities($message, ENT_NOQUOTES, 'UTF-8'); htmlentities($message, ENT_COMPAT, 'UTF-8'); 

Спасибо.

Я просто понял что-то странное, если я сделаю следующее

 echo $message; die(); 

для отображения белой страницы для отладки кавычек отображаются! Так что происходит? Почему он не отображается правильно на странице сайта? : S

Похоже, вы пропустили спецификацию кодировки в своем браузере,

попробуйте добавить <meta charset="UTF-8"> это в раздел вашей веб-страницы. Ранее у меня была проблема с отображением многоязычного текста в UTF -8. Я сделал то же самое, чтобы решить эту проблему.

надеюсь это поможет

КСТАТИ

для HTML 5 <meta charset="UTF-8"> работает

в случае HTML 4

 <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 

и в случае XML вы должны указать

 <?xml version="1.0" encoding="UTF-8"?> 

Здесь вы можете получить всю информацию

Объявление кодировок символов в HTML

Существует несколько способов настройки кодировки содержимого, даже если вы можете настроить сервер также для отображения всегда utf-8, который вы можете прочитать здесь для получения дополнительной информации в разделе настройки сервера

РЕДАКТИРОВАТЬ : –

После разговора с вами в разделе комментариев,

Ваша проблема с Joomla

вы протестировали, поместив кодировку ISO-8859 на веб-страницу, и это работает, это явно доказывает, что вы получаете контент в ISO не в UTF-8

Вероятно, ваша база данных mysql не в UTF-8, я думаю, и поэтому она отправляет текст ISO на передний план, вы можете изменить БД на UTF-8 general-ci или ISO latin1, который когда-либо возможен, и что работает, я предлагаю вам измените DB на utf-8-general-ci, так как у вас уже есть html-страницы с заголовком, установленным в utf-8, и это решит вашу проблему.

Кроме того, если вы не можете изменить БД, то вы уже знаете, что его в кодировке ISO так меняют весь заголовок шаблона Joomla на ISO-кодировку.

который выглядит так

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

ИЛИ

в php

 header('Content-Type: text/html; charset=iso-8859-1'); 

путем удаления существующей декларации utf-8 charset.

Попробуйте следующий код, это сработало для меня:

 <?php $message = "“Hello Colors“"; $message = iconv('UTF-8', 'ASCII//TRANSLIT', $message); echo htmlentities($message); ?> 

Результат:

 &quot;Hello Colors&quot;