[Ayuda] Acentos en apache

Salvador Ortiz Garcia sog en msg.com.mx
Vie Mayo 7 10:23:01 CDT 2004


On Thu, 2004-05-06 at 19:20, Lista de Linux wrote:
> Bueno tengo un problema con el servidor web apache, no muestra los 
> acentos, 
> La configuración del httpd.conf incluye las directivas, entre otras:
...
> cuando pongo un acento por ejemplo ó ú é no me muestra cosas extrañas 
> , se que si pongo desde html por ejemplo &aacute pondria el acento, pero 
> la idea es ponerlo en ascii.
...

Ok, vamos por partes, primero un pequeño test para _tu_ sistema:

áéíóú <- Ves aquí las cinco vocales acentuadas?

Ahora tres comentarios, luego un poco de ayuda:

- Ningún servidor de WEB "muestra" acentos, en todo caso el que podría
mostrarlos es el navegador. 
- Las directivas de configuración que muestras sirven únicamente para
que el server pueda seleccionar entre varios documentos alternativos
cuando el navegador le solicita algún lenguaje/encoding específico.
- No existe tal cosa como un "acento en ascii", por definición ASCII es
un código de sólo 7 bits. Por lo que la forma de generar caracteres
acentuados usando ASCII es precisamente usando "char entities" del tipo
"á"

En los encabezados de tu mensaje original dice a la letra:

  Content-Type:  TEXT/PLAIN; charset=ISO-8859-1

Sin embargo los caracteres acentuados que vienen en él (conservados
arriba) están codificados en UTF-8 y no en ISO-8859-1.

Y esto viene a cuento precisamente por que la única manera en que un
_navegador_ muestre correctamente caracteres con acentos (y muchos
otros) es que conozca la codificación en que vienen y sea la correcta.

Cuando el navegador solicita una entidad incluye sus preferencias, mi
mozilla por ejemplo dice:

  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Lo que le permitirá al apache seleccionar una de varias entidades a
devolver, pero para eso requiere obviamente tener las varias versiones
en el caso de documentos estáticos, o que los generadores que tengas
(cgis, servlets, etc) generen la adecuada. Además si la entidad no está
codificada en ISO-8859-1, ésta necesita incluir en sus propios
encabezados la codificación utilizada.

En tu apache tienes varias versiones de tus documentos?
Estos incluyen los encabezados correctos?
El navegador que estás usando para tus pruebas, que codificación
espera/asume?

Hoy por hoy los Linuxes modernos utilizan por default UTF-8, por lo que
si usas, por ejemplo 'vim' para editar tus archivos HTML, es muy
probable que estos estén codificados en UTF-8, sin embargo si apache no
lo sabe, y no tiene forma de saberlo si tu no se lo dices, lo asumirá
ISO-8859-1 y lo mismo hará tu navegador, pues ISO-8859-1 es el default
estándar en HTML y como no habrá ningún encabezado que diga la verdad la
cosa no funcionará.

Así que si quieres que en tu navegador se vean bien los acentos en tu
HTML tienes de dos

O utilizas únicamente ASCII y por tanto "á"
O lo codificas en lo que tú quieras, ISO-8859-1, UTF-8, etc. pero se lo
informas al navegador, lo más facil usando

<META http-equiv="Content-Type" content="text/html; charset=foobar">

Por supuesto, cerciorándote que que lo que pongas en "charset" sea
efectivamente la codificación usada.

Ya si después quieres que tu apache tenga varias versiones distintas,
entonces usas las directivas que mencionaste.

Saludos

PD. También tienes que arreglar tu agente con que escribes correo
electrónico.


-- 
Salvador Ortiz Garcia <sog en msg.com.mx>
Matías Software Group


 
_______________________________________________
Ayuda mailing list
Ayuda en linux.org.mx
Para salir de la lista: http://mail.linux.org.mx/cgi-bin/mailman/listinfo/ayuda/



Más información sobre la lista de distribución Ayuda