Получение & # 8364; с трудностями
-
03-07-2019 - |
Вопрос
Я действительно пытаюсь показать, что дарит мне htmlentities, но это не дает & amp; евро; для & # 8364; характер.
Я пытаюсь
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);
и для обоих я получаю
LISBOA-VIENA DESDE 99 & # 8364; TAXAS INCLU & amp; Iacute; DAS, РЕЗЕРВ J & amp; Aacute; р>
LISBOA-VIENA DESDE 99 & # 8364; TAXAS INCLU & amp; Iacute; DAS, РЕЗЕРВ J & amp; Aacute; р>
Я никогда не получаю & amp; евро;
Кто-нибудь знает, как сделать это правильно?
Решение
Это обсуждается здесь ; похоже & # 8364; ( & amp; # 8364;
) часто работает.
Другие советы
Какая исходная кодировка файла используется в этих выражениях? Р>
Если вы работаете в Windows, высоки шансы, что файл закодирован с помощью Windows-1252 (CP1252), а не в ISO-8859-1 , < a href = "http://en.wikipedia.org/wiki/ISO/IEC_8859-15" rel = "nofollow noreferrer"> ISO-8859-2 или UTF-8 .
Знак & # 8364;
равен 0x80
в Windows-1252, ISO-8859-15 кодирует знак & # 8364;
с помощью 0xA4
, в то время как ISO-8859-1 вообще не имеет знака & # 8364;
( см. ответ от Aron Rotteveel).
Вы должны убедиться, что передали правильный набор символов, используемый для этой строки, в htmlentities ()
а>. Рекомендуется использовать кодировку UTF-8 для всех ваших файлов.
Если htmlentities (< LISBOA-VIENA DESDE 99 & # 8364; TAXAS INCLU & # 205; DAS, RESERVE J & # 193; ", ENT_COMPAT, 'Windows-1252')
работает, то вы ' использовать кодировку CP1252.
Я также только что заметил, что в вашем примере выше отсутствуют кавычки вокруг кодировок. Это также может стать причиной неприятностей.
Используйте 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€ off!