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/.

 

0 comentarios

Enviar un comentario

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

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.