MySQL Forums
Forum List  »  Spanish

Re: Caractertes raros en Shell de MySQL
Posted by: Miguel Perez
Date: July 17, 2007 05:16AM

El problema es que el cliente de MySQL utiliza las funciones de caracteres de 8 bits de la librería estándar de C. En última instancia, esas funciones llaman a ReadConsoleA, WriteConsoleA, etc. Eso en Windows significa usar tu local de 8 bits, mal llamada "ANSI", que en nuestro caso es Windows-1252, un juego de caracteres de 8 bits obsoleto. Tienes la base de datos en UTF-8, lo cual debes hacer, pero el cliente sólo trabajará en CP1252, y no podrá ver o enviar correctamente caracteres fuera de los 128 primeros (que son iguales en casi todas las tablas de caracteres y codificaciones).

La consola de Win32 soporta Unicode, y siempre podrás escribir caracteres Unicode cuando lees de ella, pero sólo si lees con la familia de funciones de UTF-16, ReadConsoleW, WriteConsoleW, etc. o si defines UNICODE y utilizas cadenas de 16 bits.

Lo que hace el cliente de MySQL funciona bien en Linux si tu juego y codificación de caracteres local es UTF-8 (casi siempre hoy en día, no debería ser nunca de otra manera), y la base de datos es UTF-8. Mi consejo es que uses Linux.

Otra posibilidad es esperar a que tenga tiempo de publicar mi cliente hecho en Python, que utiliza a mano las funciones de Win32 para soportar Unicode también en Windows.

Un saludo,

Miguel Pérez
Afina Sistemas - Partner de MySQL en España

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Caractertes raros en Shell de MySQL
2734
July 17, 2007 05:16AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.