Estoy peleando desde anoche con la base de datos; Resulta que tengo una tabla llamada app_tag la cual está codificada en utf8, pero al consultar por términos como ñandú no responde bien.
Ejemplo:
Código :
-- Así creo la tabla CREATE TABLE app_tag (varchar(32) character set utf8 not null); -- Inserto un par de datos para probar INSERT INTO app_tag values ('nancy'), ('nancagua'),('ñandú'),('nandú'),('nandu'); -- Consultas que fallan SELECT tag FROM app_tag WHERE tag like 'nan%'; -- Esto devuelve nancy,nancagua,ñandu,nandú SELECT tag FROM app_tag WHERE tag = 'nandu'; -- Esto devuelve ñandú,nandú,nandu
Status del servidor:
Código :
mysql Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i686) using readline 5.0 Connection id: 1070462 Current database: w00p Current user: w00p@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.0.45-log Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 6 days 11 hours 59 min 47 sec Threads: 10 Questions: 57675056 Slow queries: 39583 Opens: 6208635 Flush tables: 1 Open tables: 64 Queries per second avg: 102.700
Con la conexión en latin1, las ñ y tildes se me muestran con garabatos, si cambio a utf8 se muestran bien, pero los resultados de las consultas siguen estando malas.
Si dejo la base de datos en latin1 y el campo de la tabla en latin1, no hay problemas.
Yo creo que hay algo con el characterset del servidor (mysqld), he leido por ahí que hay que cambiar la codificación del servidor, pero me imagino que no debería ser asi. De todos modos, no tengo acceso a la configuración del servidor, soy solo un usuario.
Gracias por sus respuestas.