charset en Apache/PHP [was Re: Apache utf iso encode php enrredo

Ricardo Mun~oz A. rmunoz en pjud.cl
Vie Oct 12 16:48:06 CLT 2007


Marcos Ramirez wrote:
> On Fri, 2007-10-12 at 12:27 -0500, Raul Perez wrote:
>   
>> Estoy loco con el tema de los encode.
>>
>> Yo tenia un servidor con centos que tuve problemas con los caracteres en 
>> espanol que lo resolvia si mal no me acuerdo cambiando el httpd.conf la linea 
>> de charset por utf8
>>     
>
> Eso solo define que charset asume apache en caso de no encontrar
> ninguno, las paginas *pueden* especificar que el charset es distinto.
>
>   
>> Ahora tengo un server con gento donde esto no me resulta
>> Tengo que estar colocando a los php funciones para decode y encode para poder 
>> que se vean las tildes
>>     
>
> ¿revisaste que charset esta mandando php?. Mira en php.ini y busca la
> linea "default_charset", probablemente tienes iso-8859-1 o no lo tienes
> definido, en cuyo caso asume el valor por omision, que probablemente sea
> "iso-8859-1"
>
> Una mirada a los headers que te envia la pagina te sirve para saber
> quien esta generando el charset.
>   

a mas bajo nivel se puede verificar el charset directamente de un 
archivo html/php/etc., con el comando file(1), por ejemplo:

file -i archivo.extension

archivo.extension:         text/plain; charset=iso-8859-1

el cual probablemente se mostrara incorrectamente si tienes seteado 
utf-8 en todas partes (Apache, PHP, etc.). entonces una solucion es usar 
el comando recode(1) para convertir el charset del archivo:

recode iso-8859-1..utf-8 archivo.extension

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


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