Comunidad de diseño web y desarrollo en internet online

Ayuda por favor, codificación!

Citar            
MensajeEscrito el 19 Mar 2009 05:54 pm
Hola chicos,

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.

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 19 Mar 2009 09:50 pm
Hola, dale una mirada a la cláusula COLLATE

Podrias hacer asi tus consultas:

Código :

SELECT tag FROM app_tag WHERE tag like 'nan%' COLLATE utf8_spanish_ci;

SELECT tag FROM app_tag WHERE tag = 'nandu' COLLATE utf8_spanish_ci;


en teoria el utf8 toma las n y las ñ igual, pero el uf8 español las distinge.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 20 Mar 2009 12:57 am
Muchas gracias!

Me funcionó a la perfección.

Por w00p

24 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.