Получение € с htmlentities

Я действительно пытаюсь показать, что дает мне htmlentities, но это не дает & euro; для символа €.

я пытаюсь

echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,ISO-8859-1),ENT_COMPAT,ISO-8859-1);
    echo '<br>';
    echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,UTF-8),ENT_COMPAT,UTF-8);

и для обоих я получаю

ЛИСБОА-ВЕНА ОТКАЗЫВАЕТСЯ НАЛОГООБЛОЖЕНИЯ 99 € ВКЛЮЧЕНЫ & Iacute; DAS, RESERVE J & Aacute;

ЛИСБОА-ВЕНА ОТКАЗЫВАЕТСЯ НАЛОГООБЛОЖЕНИЯ 99 € ВКЛЮЧЕНЫ & Iacute; DAS, RESERVE J & Aacute;

Я никогда не получаю & евро;

Кто-нибудь знает, как это сделать правильно?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
0
6 058
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Используйте ISO-8859-15 вместо ISO-8859-1.

ISO-8859-15 (ISO Latin 9) отличается от ISO-8859-1 (ISO Latin 1) и добавляет знак евро, а также французские и финские буквы, отсутствующие в Latin-1 (ISO-8859-1).

echo htmlentities('Working htmlentities() now 99€ off!', ENT_COMPAT, 'ISO-8859-15');

должен вернуться

Working htmlentities() now 99&euro; off!
Ответ принят как подходящий

Это обсуждается здесь; вроде € (&#8364;) работает часто.

Какова исходная кодировка файла, в котором вы используете эти операторы?

Если вы используете Windows, велики шансы, что файл закодирован с помощью Окна-1252 (CP1252), а не ISO-8859-1, ISO-8859-2 или UTF-8.

Знак - это 0x80 в Windows-1252, ISO-8859-15 кодирует знак с помощью 0xA4, в то время как ISO-8859-1 вообще не имеет знака (увидеть ответ от Арона Роттевила). Вы должны убедиться, что вы передаете правильную кодировку, используемую для строки, в htmlentities(). Лучше всего использовать кодировку UTF-8 для всех ваших файлов.

Если htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,'Windows-1252') работает, значит, вы используете кодировку CP1252.

Я также только что заметил, что вам не хватает кавычек в кодировках в приведенном выше примере. Это тоже могло быть причиной неприятностей.

Другие вопросы по теме