2010-07-25 18 views
28

¿Cómo guardo Unicode en la edición gratuita de MySQL?Cómo almacenar unicode en MySQL?

No parece haber nvarchar tipo como en SQL Server. ¿Unicode no es compatible con MySQL? Intenté usar text pero eso tampoco funciona.

Respuesta

21

Usted tiene que elegir un personaje utf8_* establecido para su mesa. Los campos de texto y memo se almacenarán automáticamente en UTF-8. Soporte para UTF-16 viene en MySQL 6.

+5

Actualización: UTF-16 y Emoji (utf8mb4) de soporte se introduce desde la versión 5.5: http://dev.mysql.com/doc/refman/5.5/en/charset- unicode.html – Raptor

+0

Vale la pena señalar que, dependiendo de cómo recupere los datos de la base de datos, también podría ser necesario permitir explícitamente que la conexión también use UTF-8. – hugovdberg

2

¿Ha intentado configurar los nombres después de la conexión? ¿Cuál fue el resultado de probar almacenar caracteres unicode? Conéctese al servidor mysql y escriba esto:

SET NAMES UTF8; 

Esto debería activar el "soporte" para utf8. Luego intente almacenar datos utf.

14

El juego de caracteres para una columna determinada cadena (CHAR, VARCHAR o *TEXT) está determinada por su character set and/or collation. Este es un tema bastante intenso, así que es mejor leer la documentación que vinculé. Por ejemplo:

CREATE TABLE t1 
(
    col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci 
) 

creará una tabla t1 con un col1 que almacena su contenido en codificación UTF-8.

+0

Buena explicación y ejemplo. Gracias. @ Stefan Gehrig –

1

Sigo mi propio estilo de codificación, así que tenlo en cuenta cuando sigas mi ejemplo.

Primero creé la base de datos MySql.

después de crear la base de datos, en la línea de comandos mysql, dar la orden:

SET NAMES = UTF8; 

mesa y columnas para almacenar Unicode se medirán con propiedad de intercalación como UTF-8-utf_general_ci. Todas y cada columna que significó almacenar unicode, debe seleccionarse y establecer la propiedad de intercalación en utf8-utf_general_ci.

Ahora en C#.

mi cadena de conexión se establece como de costumbre, pero con la adición de un solo atributo de la siguiente manera:

constring = @"SERVER=localhost;" + @"PORT=3306;" + @"DATABASE=gayakidb;" + @"UID=root;" + @"PASSWORD=mysql;" + @"charset=utf8;"; 

A continuación, fuente Unicode instalado en el 'ajuste del idioma de visualización' de su sistema operativo sistema. O bien, puede copiar y pegar el archivo de fuente (archivo de tipo verdadero) en la carpeta Fuentes del sistema operativo.

Luego establezco la propiedad de fuente del objeto de cuadro de texto o cualquier otro objeto de herramienta en la página de propiedades.

Además, si necesita escribir en la fuente Unicode con su teclado, debe instalar el lenguaje Unicode para el diseño del teclado. Eso podría hacerse usando la opción de configuración de idioma regional de su sistema operativo.

Listo. con esta configuración, codifiqué el módulo para guardar datos y mientras ejecutaba la operación ocde, el trabajo se realizó con éxito.

2

utilizar esta consulta

alter table `DBNAME`.`TblName` Engine=InnoDB checksum=1 comment='' delay_key_write=1 row_format=dynamic charset=utf8 collate=utf8_unicode_ci 
+0

"Usar esta consulta" sin una explicación es una mala respuesta. – Emiswelt

Cuestiones relacionadas