Foros del Web » Programando para Internet » PHP »

convertir bien caractares HTML

Estas en el tema de convertir bien caractares HTML en el foro de PHP en Foros del Web. Hola, tengo una función que me trae el título de una web y su descripción. Para evitar que caracteres como acentos salgan "raros", aplico htmlentities ...
  #1 (permalink)  
Antiguo 20/08/2011, 04:47
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
convertir bien caractares HTML

Hola, tengo una función que me trae el título de una web y su descripción.

Para evitar que caracteres como acentos salgan "raros", aplico htmlentities

http://www.elmundo.es/elmundosalud/d.../06/leche.html

el caso es que con las eñes y algún otro caracter me sale:

Salud | Las marcas espa & n t i l d e ; olas de leche, a examen

es decir que no transforma bien el carácter HTML a la ñ

también me pasa con «, es decir «

cómo lo puedo solucionar? (siempre está lo de sustituir con str_replace pero entiendo que habrá algo más "ortodoxo")
  #2 (permalink)  
Antiguo 20/08/2011, 05:30
Avatar de Hazuki  
Fecha de Ingreso: mayo-2011
Mensajes: 34
Antigüedad: 12 años, 11 meses
Puntos: 7
Respuesta: convertir bien caractares HTML

Asegúrate de no estar haciendo algo como:
Código PHP:
htmlentities("España"
Algunas páginas tendrán caracteres especiales (ñ, tildes...) tal cual, y otras no. Si aplicas el mismo método a todas, te verás re-convirtiendo "ñ" a "ñ".

Yo recomendaría hacer primero un html_entity_decode y después htmlentities.
  #3 (permalink)  
Antiguo 20/08/2011, 06:25
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: convertir bien caractares HTML

perfecto Hazuki, apliqué tal y como me dijiste html_entity_decode y luego htmlentities y mano de santo!

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.