[Ayuda] Acentos en apache

Oscar Sosa oscar en websitemx.com
Mar Mayo 11 15:50:03 CDT 2004


Gracias, bastante explicativo.

Todos mis documentos los mando con iso-8859-1, para solucionar mi
problema, lo que hice fue comparar el httpd.conf de otro servidor web en
el que tengo varias de estas aplicaciones contra en el que tengo la que
me esta dando problemas, encontre, gracias a la orientación que me
dieron ustedes que una diferencia que pudiera estar causando esto era:

- En el webserver en que estoy corriendo esta aplicación tenia:
AddDefaultCharset UTF-8

- En otro tenía: AddDefaultCharset ISO-8859-1

- Y en otro servidor ni siquiera estaba, aunque es un 1.3.22.

En fin comentando esa linea (AddDefaultCharset UTF-8) en el httpd.conf
ahora todo funciona como siempre, ya puedo seguir siendo feliz.

Por lo que me dices puede que esto sea sólo un espejismo; pero la verdad
nunca he tenido problemas de este tipo hasta hoy y bueno al final
resulta ser por una directiva de apache, que por supuesto no digo que
este mal, de hecho tu mismo asi me lo recomiendas, pero pues obio que si
estoy mandando todo en iso-8859-1 y el default del server es utf-8 no
iba a funcionar.

Al final, para mis necesidades y las del sistema esta solución es
perfecta, en otras circunstancias tal vez no, pero para esta sí y es en
mucho gracias a los tips que ustedes me pasaron. 

Saludos!

-----Original Message-----
From: Salvador Ortiz Garcia [mailto:sog en msg.com.mx] 
Sent: Tuesday, May 11, 2004 3:20 PM
To: Oscar Sosa
Cc: ayuda en linux.org.mx
Subject: RE: [Ayuda] Acentos en apache


Ok, yo también tengo mis dudas:

Cuando en un formulario te capturan un palabra con acentos, en que
charset (encoding) está ese caracter acentuado?

En que charset lo guardas en la base de datos?

En que charset espera tu terminal que le envíes caracteres con acentos?

Si no tienes idea sigue leyendo, porque has de saber que no existe una
única forma de representar un caracter acentuado.

Lo único que demuestra tu prueba es que en si capturas en una forma de
_TU_ navegador una 'á', y guardas lo que recibiste, que quien sabe que
sea, y luego se lo mandas a _TU_ navegador (o cualquier otro que esté
configurado en el mismo charset) verás una 'á'. Y pues eso es obvio pues
tu navegador y tu navegador ;-)  usan el mismo charset.

Tu problema es que:

1. Cuando lo guardas en tu base de datos, no sabes en que charset lo
estás guardando.

2. Cuando lo pides desde tu terminal, no lo estas convirtiendo al
charset que tu terminal espera y pues si no sabes como lo guardaste pues
está difícil que lo puedas convertir.

3. Al liberar tu aplicación, es muy probable que se tope con navegadores
usando encodings distintos y entonces la misma palabra, digamos 'Ñoño',
podrá quedar guardada de muchas formas, lo que no creo que te haga mucha
gracia.

Solución:

1. Decide en que charset quieres almacenar siempre los datos. La
recomendación es UTF-8.

2. Verifica siempre que recibas un POST, en que charset vienen los
datos, y si se requiere has la conversión a tu estándar antes de
almacenarlos.

3. Antes de enviarlos a cualquier lado, navegadores, terminales, etc,
verifica que charset espera el destinatario o si puedes influirlo (p.e.
puedes en HTML) has las conversiones necesarias y siempre envía los
encabezados requeridos.

Te quedará claro que no es un problema de configuración, moviendole a tu
configuración sólo estarás a lo más, ocultando el problema pues no
puedes influir en la configuración de otras terminales, navegadores,
usuarios, etc. 

Es un problema de programación.

Saludos.

On Tue, 2004-05-11 at 12:35, Oscar Sosa wrote:
> Gracias por responder, pero no se, tengo mis dudas, esto me parece más

> una solución del lado del cliente, pero yo siento como que mi problema

> es del servidor porque mira:
> 
> El problema ya no es tanto que el navegador no los muestre 
> correctamente, eso se soluciona con el famoso "acute"; tampoco puedo 
> guardarlo asi en la base de datos porque los registros que se inserten

> luego se tienen que exportar a un archivo de texto de formato estricto

> para meterlo en un sistema contable, y por ejemplo: si tengo un 
> formulario html y en ese formulario me capturan una palabra con acento

> al hacer el submit y guardar el registro en la bd, este aparece luego 
> al hacer un select directo en la terminal con caracteres muy extraños,

> luego si obtengo ese registro (solo para probar) y lo imprimo en html 
> tal cual sin pasar acentos a entidades html, entonces el acento 
> aparece perfectisimo, tal cual, incluso al ver el html source con el 
> navegador tambien ves el acento, con lo que me queda claro que mi 
> mozilla sabe como mostrar eso por lo que el navegador no creo que sea 
> el problema;

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