Pregunta

Realmente estoy tratando de mostrar lo que htmlentities me da, pero no da & amp; euro; para el & # 8364; personaje.

Estoy intentando

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);

y para ambos obtengo

LISBOA-VIENA DESDE 99 & # 8364; TAXAS INCLU & amp; Iacute; DAS, RESERVA J & amp; Aacute;

LISBOA-VIENA DESDE 99 & # 8364; TAXAS INCLU & amp; Iacute; DAS, RESERVA J & amp; Aacute;

Nunca obtengo un & amp; euro;

¿Alguien sabe cómo hacerlo bien?

¿Fue útil?

Solución

Esto se discute aquí ; parece que € ( & amp; # 8364; ) funciona a menudo.

Otros consejos

¿Cuál es la codificación del archivo original del archivo en el que usa estas declaraciones?

Si tiene Windows, es muy probable que el archivo esté codificado con Windows-1252 (CP1252) y no en ISO-8859-1 , < a href = "http://en.wikipedia.org/wiki/ISO/IEC_8859-15" rel = "nofollow noreferrer"> ISO-8859-2 o UTF-8 .

El signo es 0x80 en Windows-1252, ISO-8859-15 codifica el signo con 0xA4 mientras que ISO-8859-1 no tiene un signo por completo ( ver respuesta de Aron Rotteveel). Debe asegurarse de pasar el juego de caracteres correcto utilizado para la cadena en htmlentities () . La mejor práctica sería utilizar la codificación UTF-8 para todos sus archivos.

Si htmlentities (" LISBOA-VIENA DESDE 99 € TAXAS INCLUÍDAS, RESERVE JÁ ", ENT_COMPAT, 'Windows-1252') funciona, entonces está usando el conjunto de caracteres CP1252.

También me di cuenta de que te faltan citas en los conjuntos de caracteres en tu ejemplo anterior. Esto también podría ser la causa de problemas.

Utilice ISO-8859-15 en lugar de ISO-8859-1 .

ISO-8859-15 (ISO Latin 9) difiere de ISO-8859-1 (ISO Latin 1) y agrega el signo del Euro y faltan letras francesas y finlandesas en Latin-1 (ISO-8859-1) .

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

debería regresar

Working htmlentities() now 99&euro; off!
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top