Charsets

Hace un rato me ha dado por jugar con Apache2 en una máquina de pruebas. Intentando modificar ciertas páginas PHP he encontrado un problema de codificación de texto, tanto en acentos como en eñes salían caracteres raros, por lo que pensé si sería problema de la actualización de Apache. Así que haciendo una búsqueda en apache2.conf por 'charset' topé con lo siguiente:

...
AddDefaultCharset ISO-8859-1

AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
...
La codificación por defecto era correcta (latin1). Apache2 no tenía la culpa y pensé que podría ser MySQL, así que sirviéndome de PhpMyAdmin miro las variables de entorno:

character set latin1
character sets latin1 big5 cp1251 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin1_de latin2 latin5 sjis swe7 tis620 ujis usa7 win1250 win1251ukr win1251

De nuevo premisas erróneas, MySQL también codifica correctamente en iso8859-1. ¿Será el navegador (actualizado también)?. Pues va a ser que no, Mozilla Firefox también está bien configurado (menú Ver / Codificación de caracteres).

Después de un rato divagando he acabado pensando que Quanta (xHTML/PHP editor) codifica los documentos por defecto a la hora de guardarlos, no iba mal encaminado:

Había editado las páginas guardándolas con una codificación diferente a iso8859-1, por lo que a la hora de abrirlas bajo un servidor que usa éste charset, se veían símbolos raros. ¿Tendría que repasar todo el texto de nuevo al guardarlo así?, por suerte no hizo falta.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.