Я использую 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); ?>
Результат:
"Hello Colors"