2010-07-25 14 views
28

Come si memorizza Unicode nella versione gratuita di MySQL?Come archiviare unicode in MySQL?

Non sembra essere il tipo nvarchar come in SQL Server. Unicode non è supportato in MySQL? Ho provato a utilizzare text ma anche questo non funziona.

risposta

21

È necessario scegliere un personaggio utf8_* set per la vostra tavola. I campi di testo e memo verranno automaticamente archiviati in UTF-8. Supporto per UTF-16 è in arrivo mySQL 6.

+5

Aggiornamento: UTF-16 & Emoji (utf8mb4) il supporto viene introdotto a partire dalla versione 5.5: http://dev.mysql.com/doc/refman/5.5/en/charset- unicode.html – Raptor

+0

Vale la pena notare che, a seconda di come si recuperano i dati dal database, potrebbe anche essere necessario consentire esplicitamente alla connessione di usare anche UTF-8. – hugovdberg

2

Hai provato a impostare i nomi dopo la connessione? Qual è stato il risultato di tryng per memorizzare caratteri unicode? Connettersi a server MySQL e digitare questo:

SET NAMES UTF8; 

Questo dovrebbe attivare il "supporto" per utf8. Quindi prova a memorizzare i dati utf.

14

Il set di caratteri per una data colonna stringa (CHAR, VARCHAR o *TEXT) è determinata dalla sua character set and/or collation. Questo è un argomento piuttosto intenso, quindi è meglio leggere la documentazione che ho collegato. Ad esempio:

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

creerà una tabella con una t1col1 che memorizza il contenuto in UTF-8 codifica.

+0

Bella spiegazione ed esempio. Grazie. @ Stefan Gehrig –

1

Seguo il mio stile di codifica, quindi tienilo presente quando segui il mio esempio.

Prima ho creato il database MySql.

dopo la creazione del database, nel prompt dei comandi mysql, dare il comando:

SET NAMES = UTF8; 

tabella e le colonne per memorizzare unicode sono da impostare con la proprietà di confronto come utf8-utf_general_ci. Ogni colonna che intendeva memorizzare unicode, deve essere selezionata e imposta la proprietà collation a utf8-utf_general_ci.

Ora in C#.

mia stringa di connessione è impostato come al solito, ma con l'aggiunta di un singolo attributo come questo:

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

Avanti, font Unicode installato nella 'impostazione della lingua di visualizzazione' del vostro sistema operativo del sistema. In alternativa, è possibile copiare e incollare il file del carattere (file di tipo true) nella cartella Fonts del sistema operativo.

Quindi ho impostato la proprietà del carattere dell'oggetto textbox o di qualsiasi altro oggetto strumento nella pagina delle proprietà.

Inoltre, se è necessario digitare un carattere unicode tramite la tastiera, è necessario installare la lingua Unicode per il layout della tastiera. Ciò potrebbe essere fatto usando l'opzione per le impostazioni della lingua regionale del tuo sistema operativo.

Fatto. con queste impostazioni, ho codificato il modulo per il salvataggio dei dati e mentre eseguivo l'ocde, ha fatto il lavoro con successo.

2

utilizzare questa query

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

"Usa questa domanda" senza una spiegazione è una cattiva risposta. – Emiswelt

Problemi correlati