2012-07-02 4 views
6

ho cambiato il set di caratteri set, ma non funzionaCome inserire la lingua Hindi in MySQL

CREATE TABLE `tbl_hindi` (
    `data` varchar(1000) character set utf8 collate utf8_bin default NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `tbl_hindi` VALUES ('कंप्यूटर'); 
+0

Hai avuto fortuna rendendo il lavoro di SQL? – jurgemaister

risposta

14

Il set di caratteri del database deve essere utf8_unicode_ci.

provare a creare un nuovo database, così come una nuova tabella.

CREATE DATABASE hindi_test 
    CHARACTER SET utf8 
    COLLATE utf8_unicode_ci; 

USE hindi_test; 

CREATE TABLE `hindi` (
    `data` varchar(200) COLLATE utf8_unicode_ci NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

INSERT INTO `hindi` (`data`) VALUES 
    ('कंप्यूटर'); 

Questo funziona sulla mia installazione. Se non funziona per te, qualcosa potrebbe essere sbagliato con le impostazioni del tuo server.

+1

Ha funzionato per me. Grazie –

+0

Non funziona per me! Ho ottenuto ?????, La sua mostra lì in phpmyadmin ma non dopo ho capito tramite la chiamata API. Cosa fare con l'impostazione del server ?? –

+0

@PalakDarji Suona come un problema di codifica nel tuo browser. – jurgemaister

-1

basta usare N prima del valore come questo $ sql = "inserire in valori indextbl ('Null', N '$ abc')";

+1

Mi dispiace, ma come si suppone possa aiutare? Inoltre, perché la tua risposta contiene ciò che sembra PHP? – jurgemaister

2

Non hai bisogno di cambiare banca dati, tutto ciò che serve è quello di modificare la colonna della tabella.

ALTER TABLE `YOUR TABLE` CHANGE `data ` `data ` VARCHAR(1000) 
CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL; 

Questo cambiamento funziona bene e molto fattibile.

0

Se la tabella è già stato creato e il problema è su come conservare (tuoi) caratteri delle lingue locali, utf8_general_ci o utf16_general_ci sarebbe per voi: Fuoco seguente query:

ALTER TABLE 'tbl_hindi' CHANGE 'data' 'data' VARCHAR(100) CHARSET utf8 COLLATE utf16_general_ci DEFAULT '' NOT NULL; 

Se anche questo non lo fa risolvere il problema, prova a modificare le regole di confronto del database per utf16_general_ci.

0

dal phpMyAdmin cambiamento collation di una tabella per utf16_general_ci ... Nota: ha funzionato per me ..

0

È necessario modificare la tabella per inserire il valore Hindi utilizzando questo codice

`ALTER TABLE 'your table name' MODIFY 'column name' VARCHAR(20) CHARACTER SET UTF8;` 

per la visualizzazione Hindi sulle tue pagine web è necessario utilizzare il codice

`<meta charset="UTF-8">` 

tra il tag <head>.

Per una spiegazione dettagliata su questo, è possibile click here di saperne di più.

Happy Coding!

1

Prova questo:

CREATE TABLE tbl_hindi (
    data nvarchar(1000), 
); 
INSERT INTO tbl_hindi VALUES (N'कंप्यूटर'); 
SELECT * FROM tbl_hindi;