Mostrar ñ y signos de acentuación en etiquetas en HTML

publicado por: Anonymous

Estoy haciendo una página de internet en donde no tengo problemas con los caracteres en español como pueden ver:

mostrando la ñ

Para eso utilizo esto en HTML:

<meta charset="utf-8">

Pero tengo unas etiquetas <pre> en donde salen archivos de texto que yo leo del servidor pero éstas no me respetan los caracteres en español:

Mostrar letra

solución

El símbolo � (carácter de reemplazo) aparece en documentos UTF-8 en los que el carácter no puede ser interpretado, probablemente por tratarse de un carácter ISO-8859-xx.

Si quieres trabajar con utf-8 en todos los niveles, debes hacerlo siguiendo los siguientes pasos:

  • Tu servidor debe devolver la cabecera Content-Type: text/html; charset=utf-8 ya sea generada desde el propio script PHP (con header('Content-type: text/html; charset=utf-8')) o desde el servidor web (AddType o AddCharset en la configuración de apache, por ejemplo).
  • Las locales de PHP también deben soportar UTF-8. Casi todos los sistemas Linux modernos tienen por defecto en_US.UTF-8 o es_ES.UTF-8 o equivalente. Si el que viene configurado por defecto es diferente deberás cambiarlo con setlocale(LC_ALL, 'es_ES.UTF-8'). Usa locale -a para obtener el listado disponible.
  • Tu HTML debe tener definido el juego de caracteres usando la etiqueta <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> en compatibilidad con HTML4 y/o <meta charset="utf-8"> usando HTML5.
  • Tu editor de textos debe soportar UTF-8 para que los textos que introduzcas en los scripts PHP estén correctamente codificados.

Tanto el formulario de solicitud de usuario/contraseña como el que muestra el resultado (el que te da problemas) deben cumplir esos requisitos para no darte ningún tipo de problema con juegos de caracteres.

Tu problema podría tratarse de:

  • Has creado un documento con las etiquetas HTML correctas, se envían las cabeceras HTTP correctas, pero el editor que has usado ha creado un archivo PHP de recepción con codificación ISO en vez de UTF. La solución pasa por abrir el archivo que recibe el formulario y buscar la opción de tu editor para guardarlo en UTF-8.
  • Las cabeceras o codificación del formulario de origen están bien (UTF), pero la página que recibe los datos no. La solución pasa por poner al mismo nivel cabeceras y etiquetas para igualar la codificación.

Dado que tu texto parece estático, programado en el script de manera fija, me decanto con la primera opción.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *