Вопрос

Я действительно пытаюсь показать, что дарит мне 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&euro; off!
scroll top