2000px-Unicode_logo.svgIntro

Migrar la aplicación dotProject desde un servidor virtual con debian 6 a otro con el flamante (por ahora) debian 8 fue tarea relativamente fácil. Se trataba de instalar LAMP, copiar la carpeta web de dotProject y la base de datos. Cierto es que hubo que crear el usuario de dotProject en MySQL, pero sin mayores complicaciones. La sorpresa está cuando al entrar en la pantalla de taréas de la aplicación el navegador sustituye las letras con tildes y la entrañables eñes por feísimos caractéres ascii. Peor todavía es comprobar que el javascript empleado (seguramente de la época del Quijote) tampoco se lleva bien con semejantes engendros y no aparecen los tooltips con las descripciones de las tareas. Incluso el título de éstas desaparece en la pantalla de edición de tareas.

MySQL.svg

Solución

Después de mucho bregar con apache, dotProject y MySQL, al final encontré un artículo donde daban la clave: forzar las conexiones con MySQL para que sean UTF-8. El artículo es Data Encoding: A Guide to UTF-8 for PHP and MySQL

En resúmen, se trataría de establecer la codificación de caractéres por defecto en el archivo de configuración de MySQL (my.cnf). Habría que actuar a los niveles siguientes:

[client] 
default-character-set=utf8 

[mysql] 
default-character-set=utf8 

[mysqld] 
character-set-client-handshake = false #force encoding to uft8 
character-set-server=utf8 
collation-server=utf8_general_ci 

[mysqld_safe] 
default-character-set=utf8

En el artículo original pone UTF-8, pero al tratar de rearrancar mysql con esos valores aparecía el siguiente error:

/usr/sbin/mysqld: Character set 'UTF-8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file

Al abir el archivo Index.xml referido pude comprobar que no existía ninguna entrada para UTF-8, sino que aparecía una que era utf8, así que cambié todo para que apareciese utf8 en lugar de UTF-8 como ponía en el artículo original.

Rearrancamos mysql y al conectar de nuevo el dotProject, voilá, el sistema ya no presentaba los caracteres raros, sino unas bonitas eñes y letras con acentos.