Seleccionar página

UTF8 y latin1 en el cliente de MySQL

por | Abr 1, 2011 | MySQL

UTF8 y latin1 en el cliente de MySQL

En primer lugar, nos conectamos a MySQL para ver el juego de caracteres utilizados;

[root@ruralbook neodoo]# mysql

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 110

Server version: 5.0.77 Source distribution

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> SHOW VARIABLES LIKE ‘character_set%’;

+————————–+—————————-+

| Variable_name            | Value                      |

+————————–+—————————-+

| character_set_client     | latin1                     |

| character_set_connection | latin1                     |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | latin1                     |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+————————–+—————————-+

8 rows in set (0.00 sec)

mysql>

En nuestro caso, vemos que desde el cliente (la propia consola de texto), los datos se visualizan en latin1 y por eso una select de una tabla, visualizará los datos en este formato:

mysql> use ruralbook;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SELECT * FROM establishment_geocode LIMIT 1;

+——————+————+————-+———+————————+———-+————-+——————+

| id_establishment | lat        | lng         | country | province               | locality | postal_code | address          |

+——————+————+————-+———+————————+———-+————-+——————+

|                1 | 28.1304221 | -17.2157363 | Espa�a  | Santa Cruz de Tenerife | Hermigua | 38820       | Caser�o El Cedro |

+——————+————+————-+———+————————+———-+————-+——————+

1 row in set (0.00 sec)

 

Como podéis ver, desde la consola los carácteres del tipo acentos / eñes / .., no se visualizan correctamente pero no quiere decir que estén mal metidos en la base de datos.

De hecho, si cambiamos el tipo de carácteres del cliente, observamos lo siguiente:

 

mysql> SET NAMES utf8;

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM establishment_geocode LIMIT 1;

+——————+————+————-+———+————————+———-+————-+——————-+

| id_establishment | lat        | lng         | country | province               | locality | postal_code | address           |

+——————+————+————-+———+————————+———-+————-+——————-+

|                1 | 28.1304221 | -17.2157363 | España | Santa Cruz de Tenerife | Hermigua | 38820       | Caserío El Cedro |

+——————+————+————-+———+————————+———-+————-+——————-+

1 row in set (0.00 sec)

 

Y ya vemos que se visualiza correctamente en el cliente de consola de MySQL.

En otros casos, sí puede surgir la necesidad de convertir datos de la BD entre latin1 y utf8; os dejo este enlace bastante esclarecedor en http://paulkortman.com/2009/07/24/mysql-latin1-to-utf8-conversion/.

 

Te puede interesar…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *